我需要通过nhibernate保存一个未更改的对象以获取数据库触发器。
那么即使没有属性发生变化,我怎么能告诉nhibernate这个对象是脏的呢?
答案 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;