Sobes.tech
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