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