【发布时间】:2012-02-16 05:04:24
【问题描述】:
我在我的应用程序中使用 NHibernate 并且有以下情况。 (注意这里的情况为了便于理解简化了很多)
从数据库中查询一个对象。使用Session.Update() 对其进行编辑和更新。然后在提交事务之前将对象从会话中逐出(使用Session.Evict(obj))。预期结果是将更改持久化到数据库中。
当我将我的 Id 列作为 NHibernate identity 列时,这曾经可以正常工作。
最近,我们将 Id 列更改为 non-identity。因此,除非我在 Evict 之前显式调用 Session.Flush(),否则上述场景不会持续到数据库中。
有人可以向我指出/解释这种行为的原因吗?
这个链接NHibernate Session.Flush & Evict vs Clear 提到了一些关于 Evict 和身份列的内容,对我来说不是很清楚。
【问题讨论】:
标签: nhibernate