从一个NHibernate会话转移一个对象另一个会话

时间:2017-01-23 10:44:11

标签: c# nhibernate fluent-nhibernate nhibernate-mapping

已经创建了两个NHibernate个会话,我创建了一个新的模型对象,并在 Id 中使用session1保存,然后我使用{{1来自 Merge 的方法来提交更改。

session2

我觉得结果出乎意料!通过在NHibernate上面运行代码,将插入具有不同Id的 2 记录。

1 个答案:

答案 0 :(得分:2)

我想知道这是否是因为session2中的对象在添加时是暂时的?这不应该是因为你在Save()的调用中分配了密钥,但是你观察到的行为符合这种情况。

如果您将代码更改为:

// session1, NHibernate
var obj1 = new FooModel();

session1.Save(obj1, Guid.NewId());
session1.Commit();

// session2, NHibernte
session2.Merge(obj1);
session2.Commit();

有什么影响?