Junior — Middle
Kaip Entity Framework nustato, kad tam tikra objekto savybė buvo pakeista?
sobes.tech AI
Atsakymas iš AI
Entity Framework stebi objektų savybių pokyčius naudodamas Change Tracking mechanizmą. Kai objektas įkeliamas iš duomenų bazės, EF išsaugo jo pradinę būseną. Iškvietus SaveChanges() metodą, EF palygina dabartinę objekto būseną su išsaugota pradiniu būsenos. Jei savybės reikšmė pasikeitė, EF ją pažymi kaip pakeistą ir sukuria atitinkamą SQL užklausą atnaujinimui.
Klasėms, įgyvendinančioms INotifyPropertyChanged sąsają, EF gali stebėti pokyčius iš karto jų atsiradimo metu. Kitaip, palyginimas vyksta saugojimo metu.
Pavyzdys:
var user = context.Users.Find(1);
user.Name = "Naujas vardas"; // EF pažymės savybę Name kaip pakeistą
context.SaveChanges(); // atnaujins tik pakeistus laukus duomenų bazėje