我正在使用MVC和Entity Framework开发基于电子商务的Web应用程序。
我只想跟踪/知道哪些实体已更新。例如,当用户更改任何产品的库存和价格并单击Save按钮时,我要跟踪这两个实体使用其ProductId更新。

有什么办法可以做到这一点?

谢谢。

最佳答案

免责声明:我是项目Entity Framework Plus的所有者

该项目允许审核/跟踪所有更改内容。如果您只想访问已修改的实体,则有很多选项可用。

// using Z.EntityFramework.Plus; // Don't forget to include this.

var ctx = new EntityContext();
// ... ctx changes ...

var audit = new Audit();
audit.CreatedBy = "ZZZ Projects"; // Optional
ctx.SaveChanges(audit);

// Access to all auditing information
var entries = audit.Entries;
foreach(var entry in entries)
{
    foreach(var property in entry.Properties)
    {
    }
}


文档:EF+ Audit

NuGet:https://www.nuget.org/packages/Z.EntityFramework.Plus.EF6/

10-08 14:49