Pokud k tomu dojde, určitě jste zapomněli přiřadit obě strany vztahu. Pokud by to bylo na místě:
var parent = ...;
var child = ...;
parent.Children.Add(child);
child.Parent = parent;
Vše bude fungovat. Protože nejvíce se zde předpokládá, že váš kód je jako:
var parent = ...;
var child = ...;
parent.Children.Add(child);
// child.Parent = parent; // this is missing
a to nevloží děti. Proč?
Protože jsme použili .Inverse()
mapování. Toto je velmi silné, ale křehké nastavení. Umožňuje NHibernate provádět některé důležité optimalizace, ale to vyžaduje - PARENT musí být nastaven v potomkovi .
Podívejte se na tento pěkný článek
Inverse =„skutečný“ příklad a vysvětlení od mykong