从NHibernate Session获取实体中已更改字段的列表

时间:2009-06-25 16:01:41

标签: nhibernate design-patterns

我想跟踪我的域模型中的更改。我知道NHibernate ISession是UnitOfWork模式的实现,因此它跟踪这些变化。是否有任何方法可以将它们拉出来,例如,在Commit()或Flush()之前?

2 个答案:

答案 0 :(得分:1)

看看NHibernate的IInterceptor。

OnFlushDirty - 将在更新的对象上显示持久化属性。

OnSave - 将显示已保存对象的持久属性。

您只需要创建一个实现此接口的拦截器类,并在配置NHibernate会话时,告诉它使用该类。

Here is a fairly good article to help you get started

答案 1 :(得分:1)

我认为拦截器有点过时了。 Еrying使用NHibernate事件。我订阅了OnPreUpdate事件。它的参数有State和OldState属性,但OldState总是为null。有谁知道这个OldState可以工作吗?