已经创建了两个NHibernate
个会话,我创建了一个新的模型对象,并在 Id
中使用session1
保存,然后我使用{{1来自 Merge
的方法来提交更改。
session2
我觉得结果出乎意料!通过在NHibernate上面运行代码,将插入具有不同Id的 2 记录。
答案 0 :(得分:2)
我想知道这是否是因为session2
中的对象在添加时是暂时的?这不应该是因为你在Save()
的调用中分配了密钥,但是你观察到的行为符合这种情况。
如果您将代码更改为:
// session1, NHibernate
var obj1 = new FooModel();
session1.Save(obj1, Guid.NewId());
session1.Commit();
// session2, NHibernte
session2.Merge(obj1);
session2.Commit();
有什么影响?