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

时间:2016-05-20 06:50:16

标签: c# asp.net-mvc entity-framework

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

有没有办法实现这个目标?

感谢。

3 个答案:

答案 0 :(得分:1)

免责声明:我是该项目的所有者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/

答案 1 :(得分:0)

答案 2 :(得分:-1)

是的,你可以用这个

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