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