Quindi, in un modello tipico in cui un genitore può avere molti figli e un bambino che può avere solo un genitore, come si gestisce l'aggiunta di figli. Ho usato questo approccio;Best practice per la gestione delle raccolte genitore-figlio di NHibernate
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;
Il problema è che ovunque voglio aggiungere un nuovo figlio che ho avuto modo di ricordare di aggiungere un riferimento sia per il bambino e la madre e la sua un po 'di dolore. Potrei semplicemente aggiungere un metodo AddChild alla classe genitore e renderlo responsabile per l'aggiunta di bambini - il problema ora è che ci sono 2 modi per aggiungere un bambino, attraverso la proprietà Children e il metodo. Quindi questa è una soluzione migliore?
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;
}
}
Esistono guidences per le migliori pratiche su questo, e cosa fai?
questa è una buona soluzione ma con un inconveniente che se l'utente ha lanciato i figli su IList, avrebbe accesso all'elenco e può modificarlo .. in altro modo potrebbe utilizzare ReadOnlyCollection <> –