NHibernate的父母的孩子的保存冗余SQL执行更新(NHibernate parent-chi

2019-11-04 10:20发布

我试图保存子对象的集合(插入)父对象,所有的对象都是新的。 我更喜欢手动指定要保存的\更新,当,所以我不使用我自己的映射和冲洗会议级联任何节省。 所以基本上我保存这样的对象图:

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设置正确。 我该如何摆脱它? 性能对我来说非常重要。

Answer 1:

我忘了就多到一个集合映射“逆”。



文章来源: NHibernate parent-childs save redundant sql update executed