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