/ / Como rastrear quais entidades são atualizadas no Entity Framework - c #, asp.net-mvc, entity-framework

Como rastrear quais entidades são atualizadas no Entity Framework - c #, asp.net-mvc, entity-framework

Eu estou trabalhando em uma web baseada em eCommerceaplicação com MVC e Entity Framework. Eu só quero rastrear / saber quais entidades são atualizadas. Por exemplo, quando o usuário altera o estoque e o preço de qualquer produto e clica no Save botão, quero controlar que essas duas entidades são atualizadas com seus ProductId.

Existe alguma maneira de conseguir isso?

Obrigado.

Respostas:

1 para resposta № 1

aviso Legal: Eu sou o dono do projeto Entidade Framework Plus

Este projeto permite auditar / rastrear tudo o que é modificado. Há muitas opções disponíveis se você quiser apenas acessar entidades modificadas.

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

Documentação: Auditoria EF +

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


0 para resposta № 2

Você pode usar o rowversion se não estiver no mesmo pedido http.

http://www.asp.net/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/handling-concurrency-with-the-entity-framework-in-an-asp-net-mvc-application


-1 para resposta № 3

Sim você pode com isso

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