Oracle
 sql >> Base de données >  >> RDS >> Oracle

Nhibernate n'insère pas l'ID parent dans l'enfant

Si cela se produit, vous avez certainement manqué d'attribuer les deux côtés de la relation. Si cela était en place :

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

Tout fonctionnera. Parce que le plus suspecté ici est que votre code ressemble à :

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

et cela n'insérera pas d'enfants. Pourquoi ?

Parce que nous avons utilisé le .Inverse() cartographie. C'est un réglage très puissant mais fragile. Cela permet à NHibernate de faire quelques optimisations importantes, mais cela nécessite - PARENT doit être défini dans l'enfant .

Consultez ce bel article

Inverse ="vrai" exemple et explication par mykong