Junior — Middle
Kako Entity Framework određuje da je određena svojstvo objekta izmenjeno?
sobes.tech АИ
Одговор од АИ
Entity Framework prati promene svojstava objekata pomoću mehanizma nazvanog Change Tracking. Kada se objekat učita iz baze podataka, EF čuva njegovo početno stanje. Kada pozovete metodu SaveChanges(), EF upoređuje trenutno stanje objekta sa sačuvanim početnim stanjem. Ako se vrednost svojstva promenila, EF je označava kao izmenjeno i generiše odgovarajući SQL upit za ažuriranje.
Za klase koje implementiraju interfejs INotifyPropertyChanged, EF može pratiti promene odmah po njihovom nastanku. U suprotnom, poređenje se vrši prilikom čuvanja.
Primer:
var user = context.Users.Find(1);
user.Name = "Novo ime"; // EF označava svojstvo Name kao izmenjeno
context.SaveChanges(); // ažurira samo izmenjena polja u bazi