我想跟踪我的域模型中的更改。我知道NHibernate ISession是UnitOfWork模式的实现,因此它跟踪这些变化。是否有任何方法可以将它们拉出来,例如,在Commit()或Flush()之前?
答案 0 :(得分:1)
看看NHibernate的IInterceptor。
OnFlushDirty - 将在更新的对象上显示持久化属性。
OnSave - 将显示已保存对象的持久属性。
您只需要创建一个实现此接口的拦截器类,并在配置NHibernate会话时,告诉它使用该类。
答案 1 :(得分:1)
我认为拦截器有点过时了。 Еrying使用NHibernate事件。我订阅了OnPreUpdate事件。它的参数有State和OldState属性,但OldState总是为null。有谁知道这个OldState可以工作吗?