NHibernate parent-childs сохраняет избыточное обновление sql выполнено - PullRequest
0 голосов
/ 27 декабря 2010

Я пытаюсь сохранить (вставить) родительский объект с коллекцией дочерних объектов, все объекты новые.Я предпочитаю вручную указывать, что сохранять \ обновлять, и когда это происходит, я не использую каскадные сохранения в отображениях и сбрасывать сессии самостоятельно.Поэтому в основном я сохраняю этот граф объектов следующим образом:

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.Как мне от этого избавиться?Производительность очень важна для меня.

1 Ответ

0 голосов
/ 27 декабря 2010

Я забыл «Inverse» в отображениях коллекции «многие к одному».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...