nHibernate - 跟踪'Dirty'属性以记录历史记录

时间:2010-12-05 02:26:41

标签: c# nhibernate unit-of-work audit

我们目前在业务对象上使用我们自己的“工作单元”功能,但是希望迁移到nHibernate来管理我们所有的数据库持久性。由于nHibernate管理它自己的工作单元,有没有办法可以检查“脏”对象(刷新时),以便我们可以编写对数据所做更改的历史记录。

当然,如果事务对话很长,我们只对将属性的数据库值与持久保存到数据库的新值进行比较感兴趣,所做的任何中间更改,都不需要记录到数据库中。 / p>

有没有人有任何建议?

1 个答案:

答案 0 :(得分:1)

当然,一个可能的选择是利用NHibernate监听器,例如IPostUpdateEventListener(用于跟踪更新的实体) - 请查看描述基本部分的this好文章。您甚至可以进一步扩展它以跟踪集合或自定义输出等。