C# 如何跟踪实体框架中更新的实体

C# 如何跟踪实体框架中更新的实体,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我正在使用MVC和实体框架开发一个基于电子商务的web应用程序。 我只想跟踪/知道更新了哪些实体。例如,当用户更改任何产品的库存和价格并单击Save按钮时,我希望跟踪这两个实体是否使用其ProductId进行了更新 有没有办法做到这一点 谢谢。是的,你可以用这个 //let 'myObj' is entity instance //let db is your context instance if ( db.Entry(myObj).State == System.Data.EntitySta

我正在使用MVC和实体框架开发一个基于电子商务的web应用程序。 我只想跟踪/知道更新了哪些实体。例如,当用户更改任何产品的库存和价格并单击
Save
按钮时,我希望跟踪这两个实体是否使用其
ProductId
进行了更新

有没有办法做到这一点

谢谢。

是的,你可以用这个

//let 'myObj' is entity instance
//let db is your context instance
if ( db.Entry(myObj).State == System.Data.EntityState.Modified )
{
 //Try your code here
}

如果rowversion不在同一http请求中,则可以使用它


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

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

// 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)
    {
    }
}
文件:


NuGet:

你的意思是要记录这些更新吗?是的,我们可以这样说。然后请看一些实体框架+审计的示例。看看库。你能告诉我什么是myObj吗?例如,我有学生模型,所以在这种情况下,我需要配置此模型类的对象?因为我使用EF 6,我需要编写System.Data.Entity.EntityState.Modified在您的情况下,您的产品是MyObj。请建议我从哪里获得此参考:Z.EntityFramework.Plus。我们只找到了这些:@Ankita,我不太明白你的问题。您需要首先从NuGet下载正确的版本(您找到的链接很好),这取决于您使用的EF以及您想要的是所有功能还是只有一个功能。然后你就可以开始使用这个库了。“Z.EntityFramework.Plus”只是可以找到所有类的名称空间。但是我找不到Z.EntityFramework.Plus的任何NuGet包。我在那个链接中找到了提到的包。那么我在哪里可以找到这个NuGet软件包呢?我已经为它添加了直接的NuGet链接EF6@JonathanMagnan你的项目是我唯一能在EF Core for filters so plus 1中工作的项目