我正在开发一个基于电子商务的Web应用程序,其中包含MVC和实体框架。
我只是想跟踪/知道哪些实体已更新。例如,当用户更改任何产品的库存和价格并点击Save
按钮时,我想跟踪这两个实体是否已使用ProductId
进行更新。
有没有办法实现这个目标?
感谢。
答案 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)
如果rowversion不在同一个http请求中,您可以使用它。
答案 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
}