NHibernate父子节省了执行的冗余sql更新

时间:2010-12-27 15:52:43

标签: .net nhibernate fluent-nhibernate

我正在尝试使用子对象集合保存(插入)父对象,所有对象都是新对象。我更喜欢手动指定保存\更新的内容,何时这样我不会在映射中使用任何级联保存并自行刷新会话。所以基本上我保存这个对象图如:

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

这个更新语句绝对没必要,在INSERT中已经正确设置了ParentId。我怎么摆脱它?性能对我来说非常重要。

1 个答案:

答案 0 :(得分:0)

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