Junior — Middle
Hogyan határozza meg az Entity Framework, hogy egy adott objektum tulajdonsága megváltozott?
sobes.tech MI
Válasz az MI-től
Az Entity Framework a változások követését (Change Tracking) mechanizmus segítségével végzi az objektumok tulajdonságaiban. Amikor egy objektum betöltődik az adatbázisból, az EF elmenti az eredeti állapotát. A SaveChanges() hívásakor az EF összehasonlítja az aktuális állapotot a mentett eredeti állapottal. Ha egy tulajdonság értéke megváltozott, az EF azt módosítottként jelöli meg, és generálja a megfelelő SQL lekérdezést a frissítéshez.
Az INotifyPropertyChanged interfészt megvalósító osztályok esetén az EF azonnal követheti a változásokat. Ellenkező esetben a összehasonlítás a mentéskor történik.
Példa:
var user = context.Users.Find(1);
user.Name = "Új név"; // Az EF megjelöli a Name tulajdonságot módosítottnak
context.SaveChanges(); // csak a módosított mezőket frissíti az adatbázisban