Se isso acontecer, você com certeza deixou de atribuir os dois lados da relação. Se isso estivesse em vigor:
var parent = ...;
var child = ...;
parent.Children.Add(child);
child.Parent = parent;
Todos funcionarão. Porque o mais suspeito aqui é que seu código seja assim:
var parent = ...;
var child = ...;
parent.Children.Add(child);
// child.Parent = parent; // this is missing
e isso não vai inserir crianças. Por quê?
Porque usamos o
.Inverse()
mapeamento. Esta é uma configuração muito poderosa, mas frágil. Ele permite que o NHibernate faça algumas otimizações importantes, mas isso requer - PARENT deve ser definido no filho . Confira este belo artigo
Inverse =“true” exemplo e explicação por mykong