3

我需要通过 nhibernate 保存未更改的对象以触发数据库触发器。

那么我怎么能告诉 nhibernate 这个对象是脏的,即使没有属性改变呢?

4

2 回答 2

4

因此,关于我对 Radims 回答的评论,我做了以下事情:

我更改了实体的已加载状态数组的一个条目,因此 nhibernate 将在下次保存时将其视为已更改。

我知道这是一种解决方法,但对我来说它到目前为止有效。

EntityEntry entry = sessImpl.PersistenceContext.GetEntry(dbo);
entry.LoadedState[x] = y;
于 2012-12-17T10:08:09.373 回答
4

有 NHibernate 扩展点,正是针对这种情况的。在这种情况下,我们可以附加 customEventListener或引入IInterceptor.

检查这个问题How to make NHibernate 考虑属性在使用动态更新或插入时始终是脏的?寻求解决方案(基于 IInterceptor 的答案)

请参阅 NHibernate 文档12. 拦截器和事件

于 2012-12-14T11:11:56.177 回答