Junior — Middle
Cum determină Entity Framework că o anumită proprietate a unui obiect a fost modificată?
sobes.tech AI
Răspuns de la AI
Entity Framework urmărește modificările proprietăților obiectelor folosind un mecanism numit urmărirea modificărilor (Change Tracking). Când un obiect este încărcat din baza de date, EF păstrează starea sa inițială. La apelarea metodei SaveChanges(), EF compară starea actuală a obiectului cu starea inițială salvată. Dacă valoarea unei proprietăți s-a schimbat, EF o marchează ca modificată și generează interogarea SQL corespunzătoare pentru actualizare.
Pentru clasele care implementează interfața INotifyPropertyChanged, EF poate urmări modificările imediat ce apar. În caz contrar, comparația are loc la salvare.
Exemplu:
var user = context.Users.Find(1);
user.Name = "Nume nou"; // EF va marca proprietatea Name ca modificată
context.SaveChanges(); // va actualiza doar câmpurile modificate în bază