sql >> Base de Datos >  >> RDS >> Oracle

Nhibernate no inserta parentid en el niño

Si esto sucede, seguramente no asignó ambos lados de la relación. Si esto estuviera en su lugar:

var parent = ...;
var child = ...;
parent.Children.Add(child);
child.Parent = parent;

Todo funcionará. Porque lo más sospechoso aquí es que tu código es como:

var parent = ...;
var child = ...;
parent.Children.Add(child);
// child.Parent = parent; // this is missing

y eso no insertará niños. ¿Por qué?

Porque usamos el .Inverse() cartografía. Este es un escenario muy poderoso pero frágil. Permite que NHibernate realice algunas optimizaciones importantes, pero eso requiere:PARENT debe configurarse en child .

Mira este bonito artículo

Inverse ="verdadero" ejemplo y explicación por mykong