通过Entity Framework记录更改

3
请问有没有好的策略可以在我的Entity Framework模型中实现更改跟踪?我需要跟踪大约20个实体(通过facade/unit of work访问),并且需要在UI中显示记录时显示谁在何时做出了更改。我知道有Context.OnSavingChanges(或类似的东西),但我可能想在像context.MyEntity.ChangeLog这样的查询中访问更改。我必须创建一个ChangeLog实体,添加到所有实体的关联中,还是有更好的方法来保存更改?
3个回答

3

Entity Framework 是一个 ORM(对象关系映射)API,负责将数据持久化到数据库中并从数据库中加载数据。你想要持久化或者加载的数据完全取决于你自己,所以如果你希望进行更改跟踪,你必须编写相应的代码。

最常见的方法是使用 OnSavingChanges 或者重载 SaveChanges 方法,因为通常情况下,你只需要保存单个用户执行的更改。


0
一个老问题,但对于任何想要审计EF >= 6或EF Core更改的人来说,我曾经开发过一个开源库Audit.EntityFramework,你可以尝试一下。

-1
请参考我为此目的编写的开源库FrameLog。您可以在SaveChanges中调用它,它将处理其余部分,包括为查询日志提供强类型API。

我很想知道为什么会有人给我点踩,这样我就可以改进我的回答了。 - Martin Eden

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接