Я пытаюсь сохранить (вставить) родительский объект с коллекцией дочерних объектов, все объекты новые.Я предпочитаю вручную указывать, что сохранять \ обновлять, и когда это происходит, я не использую каскадные сохранения в отображениях и сбрасывать сессии самостоятельно.Поэтому в основном я сохраняю этот граф объектов следующим образом:
session.Save(Parent)
foreach (var child in Parent.Childs)
{
session.Save(child);
}
session.Flush()
Я ожидаю, что этот код будет вставлять родительскую строку, а затем каждую дочернюю строку, однако NHibernate выполняет этот SQL:
INSERT INTO PARENT....
INSERT INTO CHILD ....
UPDATE CHILD SET ParentId=@1 WHERE Id=@2 //What the point of update if ParentId was set in previous query
Этот оператор обновленияабсолютно ненужно, ParentId уже был правильно установлен в INSERT.Как мне от этого избавиться?Производительность очень важна для меня.