Junior — Middle
Kuidas määrab Entity Framework, et konkreetne objekti omadus on muudetud?
sobes.tech AI
Vastus AI-lt
Entity Framework jälgib objektide omaduste muutusi Change Tracking mehhanismi kaudu. Kui objekt laaditakse andmebaasist, salvestab EF selle algse seisundi. Kui kutsutakse välja meetod SaveChanges(), võrdleb EF objekti praegust seisundit salvestatud algse seisundiga. Kui omaduse väärtus on muutunud, märgib EF selle kui muudetud ja genereerib vastava SQL-päringu uuendamiseks.
INotifyPropertyChanged liidest rakendanud klasside puhul saab EF jälgida muudatusi kohe nende tekkimise ajal. Vastasel juhul toimub võrdlus salvestamise ajal.
Näide:
var user = context.Users.Find(1);
user.Name = "Uus nimi"; // EF märgib Name omaduse kui muudetud
context.SaveChanges(); // uuendab ainult muudetud väljad andmebaasis