NHibernate Envers 喜欢使用实体框架 6+ 进行审计日志

Dee*_*hah 5 orm audit-logging entity-framework-6

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

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

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

Dee*_*hah 2

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

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

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