Если у вас двунаправленная связь, то со стороны .net вы должны кодировать обе стороны.Как и
parent.Children.Add(child);
child.Parent = parent;
, однако с точки зрения nhibernate по умолчанию будет отправлено 2 оператора обновления для каждой из строк.Вам нужно только обновить столбец ParentId дочерней таблицы.Inverse = true гарантирует, что изменения, внесенные в эту часть, не вызовут никаких изменений в БД.Так что если вы используете Inverse = true и просто напишите ниже
parent.Children.Add(child);
, то в БД ничего не произойдет, поскольку это обратная сторона.