In einem typischen Modell, in dem Sie über mehrere untergeordnete Elemente und ein untergeordnetes Element verfügen, die nur ein übergeordnetes Element haben können, verwalten Sie das Hinzufügen von untergeordneten Elementen. Ich habe diesen Ansatz verwendet;Best Practice für die Verarbeitung von NHibernate-Eltern-Kind-Sammlungen
public class Parent
{
public Parent()
{
Children = new List<Child>();
}
public IList<Child> Children
{
get;
private set;
}
}
public class Child
{
public Parent Parent
{
get;
set;
}
}
var child = new Child();
var parent = new Parent();
parent.Children.Add(child);
child.Parent = parent;
Problem ist, dass überall ich ein neues Kind hinzufügen möchte ich habe zu erinnern, einen Verweis auf hinzuzufügen, sowohl das Kind und Eltern und seine ein wenig Schmerzen. Ich könnte einfach eine AddChild-Methode zur Elternklasse hinzufügen und diese für das Hinzufügen von Kindern verantwortlich machen - das Problem besteht nun darin, dass es zwei Möglichkeiten gibt, ein Kind hinzuzufügen, über die Children-Eigenschaft und die Methode. Ist das also eine bessere Lösung?
public class Parent
{
public Parent()
{
children = new List<Child>();
}
private IList<Child> children
{
get;
private set;
}
public IEnumerable<Child> Children
{
get
{
return children;
}
}
public void AddChild(Child child)
{
children.Add(child);
child.Parent = this;
}
}
Gibt es Hinweise für Best Practices zu diesem Thema und was tun Sie?
Dies ist eine gute Lösung, aber mit einem Nachteil, dass, wenn der Verbraucher die Children zu IList er auf die Liste zugreifen und ändern könnte .. eine andere Möglichkeit könnte ReadOnlyCollection <> verwenden –