/ / Jak śledzić, które jednostki są aktualizowane w Entity Framework - c #, asp.net-mvc, entity-framework

Jak śledzić, które jednostki są aktualizowane w Entity Framework - c #, asp.net-mvc, entity-framework

Pracuję nad internetem opartym na eCommerceaplikacja z MVC i Entity Framework. Chcę tylko śledzić / wiedzieć, które jednostki są aktualizowane. Na przykład, gdy użytkownik zmienia stan zapasów i cenę dowolnego produktu i klika przycisk Save przycisk, chcę śledzić, że te dwie jednostki są aktualizowane ich ProductId.

Czy jest jakiś sposób, aby to osiągnąć?

Dzięki.

Odpowiedzi:

1 dla odpowiedzi № 1

Zrzeczenie się: Jestem właścicielem projektu Entity Framework Plus

Ten projekt pozwala kontrolować / śledzić wszystko, co jest modyfikowane. Istnieje wiele dostępnych opcji, jeśli chcesz tylko uzyskać dostęp do zmodyfikowanych elementów.

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

Dokumentacja: EF + Audyt

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


0 dla odpowiedzi nr 2

Możesz użyć rowversion, jeśli nie znajduje się w tym samym żądaniu 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 dla odpowiedzi nr 3

Tak, możesz to zrobić

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