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 № 1aviso 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.
-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
}