childs保存执行的冗余sql更新

我试图用一组子对象保存(插入)父对象,所有对象都是新的。 我更喜欢手动指定保存 update的内容,并且在我自己的映射和刷新会话中不使用任何级联保存。 所以基本上我保存这个对象图如:

session.Save(Parent)
foreach (var child in Parent.Childs)
{
 session.Save(child);
}
session.Flush()

我期望这段代码插入Parent行,然后插入每个子行,然而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中正确设置。 我如何摆脱它? 性能对我来说非常重要。


我在多对一系列的映射中忘记了“反向”。

链接地址: http://www.djcxy.com/p/23239.html

上一篇: childs save redundant sql update executed

下一篇: NHibernate Child Session not flushing properly