强制nhibernate保存未更改的对象(将其标记为脏)

时间:2012-12-14 10:46:07

标签: nhibernate save

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

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

2 个答案:

答案 0 :(得分:3)

有NHibernate扩展点,完全适合这种情况。在这种情况下,我们可以附加自定义EventListener或引入IInterceptor

选中此问题How to make NHibernate considered property to always be dirty when using dynamic update or insert?以获取解决方案(answer based on IInterceptor)

请参阅NHibernate文档12. Interceptors and events

答案 1 :(得分:3)

关于我对Radims的回答,我做了以下几点:

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

我知道这是一个解决方法,但对我来说它迄今为止有效。

EntityEntry entry = sessImpl.PersistenceContext.GetEntry(dbo);
entry.LoadedState[x] = y;