Jeśli tak się stanie, na pewno przegapiłeś przypisanie obu stron relacji. Gdyby to miało miejsce:
var parent = ...;
var child = ...;
parent.Children.Add(child);
child.Parent = parent;
Wszystko będzie działać. Ponieważ najbardziej przypuszcza się, że Twój kod wygląda następująco:
var parent = ...;
var child = ...;
parent.Children.Add(child);
// child.Parent = parent; // this is missing
i to nie wstawi dzieci. Dlaczego?
Ponieważ użyliśmy .Inverse()
mapowanie. To bardzo potężne, ale delikatne ustawienie. Pozwala NHibernate na wykonanie kilku ważnych optymalizacji, ale to wymaga - PARENT musi być ustawiony jako dziecko .
Sprawdź ten fajny artykuł
Inverse =„prawdziwy” przykład i wyjaśnienie przez mykong