My code below looks so complicated when making association between Parent and Child.
Question: What is the best way to associate Parent and Child data model object?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;
using ConsoleApplication1;
class Child
{
public string Name { get; set; }
public Parent Parent { get; set; }
}
class Parent
{
public string Name { get; set; }
public IEnumerable<Child> Children { get; set; }
}
class Program
{
static void Main(string[] args)
{
Parent p1 = new Parent { Name = "P1" };
Child c1 = new Child { Name = "C1" };
c1.Parent = p1;
Child c2 = new Child { Name = "C2" };
c2.Parent = p1;
List<Child> children = new List<Child>();
children.Add(c1);
children.Add(c2);
p1.Children = children;
}
}
Maybe you should implement some helper methods into the class, which encapsulate some basic thinks:
public class Parent {
....
public void AddChild(Child child) {
child.Parent = this;
this.Children.Add(child);
}
public void RemoveChild(Child child) {
child.Parent = null;
this.Children.Remove(child);
}
}
public class Child {
private Child() {}
public static Child CreateChild(Parent parent) {
var child = new Child();
parent.AddChild(child);
return child;
}
}