Junior — Middle
Come determina Entity Framework che una proprietà specifica di un oggetto è stata modificata?
sobes.tech AI
Risposta dell'AI
Entity Framework monitora le modifiche alle proprietà degli oggetti tramite un meccanismo chiamato Change Tracking. Quando un oggetto viene caricato dal database, EF ne memorizza lo stato originale. Quando si chiama il metodo SaveChanges(), EF confronta lo stato attuale dell'oggetto con quello originale salvato. Se il valore di una proprietà è cambiato, EF la segna come modificata e genera la query SQL corrispondente per l'aggiornamento.
Per le classi che implementano l'interfaccia INotifyPropertyChanged, EF può tracciare le modifiche non appena si verificano. Altrimenti, il confronto avviene al momento del salvataggio.
Esempio:
var user = context.Users.Find(1);
user.Name = "Nuovo nome"; // EF segnerà la proprietà Name come modificata
context.SaveChanges(); // aggiornerà solo i campi modificati nel database