NHibernate Envers可以在更新/删除实体时很好地创建审核日志。基本上,它为每个可审计实体创建一个Audit表,并将数据的快照写入Audit表。对于例如如果客户记录保存在CUSTOMER表中,则客户记录的审计日志将保存在CUSTOMER_AUD表中。
在我的一个项目中,我们使用的是Entity Framework 6.1。我搜索并查看了各种替代方案,如AuditDBContext和EntityFramework Extensions,但它们都没有提供类似于NHibernate Envers的开箱即用解决方案。
我认为生成审核日志应该是一个非常常见的要求,所以我的问题是,是否有任何现成的解决方案可以生成类似于NHibernate Envers的EF 6+审核日志?
答案 0 :(得分:2)
另请查看https://github.com/bilal-fazlani/tracker-enabled-dbcontext
https://www.nuget.org/packages/TrackerEnabledDbContext
它有点不同,但值得一看。
答案 1 :(得分:1)
我最终使用AuditDBContext实施了自定义解决方案。
基本上,我使用AuditDBContext来跟踪已更改的属性,然后使用它将信息写入Audit表。审计表与两个附加列完全镜像主表: