sql >> Databáze >  >> RDS >> Oracle

Nhibernate nevkládá parentid do potomka

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




  1. Jak migrujete databázové diagramy SQL Server do jiné databáze?

  2. PostgreSQL psycopg2 vrací n-tici řetězců místo n-tice?

  3. jak naplnit databázi pomocí procedur

  4. Rails:Chyba při instalaci pg gem