NHibernate Envers就像Audit Log with Entity Framework 6+

时间:2014-06-17 06:36:42

标签: orm entity-framework-6 audit-logging

NHibernate Envers可以在更新/删除实体时很好地创建审核日志。基本上,它为每个可审计实体创建一个Audit表,并将数据的快照写入Audit表。对于例如如果客户记录保存在CUSTOMER表中,则客户记录的审计日志将保存在CUSTOMER_AUD表中。

在我的一个项目中,我们使用的是Entity Framework 6.1。我搜索并查看了各种替代方案,如AuditDBContextEntityFramework Extensions,但它们都没有提供类似于NHibernate Envers的开箱即用解决方案。

我认为生成审核日志应该是一个非常常见的要求,所以我的问题是,是否有任何现成的解决方案可以生成类似于NHibernate Envers的EF 6+审核日志?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

我最终使用AuditDBContext实施了自定义解决方案。

基本上,我使用AuditDBContext来跟踪已更改的属性,然后使用它将信息写入Audit表。审计表与两个附加列完全镜像主表:

  • REV_TYPE - 表示修订类型可以是添加/更新/删除
  • REV_ID - 表示该行的唯一修订ID。