任何人都可以指导我在我的实体框架模型中实施更改跟踪的好策略吗?
我有大约20个实体来跟踪更改(通过外观/工作单元访问),我需要能够显示在UI中显示记录时谁改变了什么。
我知道有Context.OnSavingChanges(或其他任何调用),但我可能想要访问context.MyEntity.ChangeLog等查询中的更改
我必须创建一个ChangeLog实体,向所有实体添加关联,还是通过savechanges更好的通道?
理查德
P.S。祝周末愉快!
答案 0 :(得分:3)
实体框架是ORM = API,负责持久性和从数据库加载。您持久或加载的内容完全取决于您,因此如果您想要更改跟踪,则必须对其进行编码。
最常见的方法确实是使用OnSavingChanges
或覆盖SaveChanges
,因为您通常会保存由单个用户执行的更改。
答案 1 :(得分:0)
一个老问题,但对于那些在EF> = 6或EF Core上寻找审核更改的人,我在一个开源库Audit.EntityFramework上工作,你可以试试。
答案 2 :(得分:-1)
请参阅FrameLog,这是我为此目的而编写的开源库。你可以从SaveChanges中调用它,它会处理剩下的事情,包括为你提供一个用于查询日志的强类型API。