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