Molto spesso quando si deve aggiornare una entity la si recupera dal database, se ne modificano i dati e si invoca il metodo SaveChanges per persistere le modifiche.
Tuttavia a volte abbiamo bisogno di modificare pochi dati di una tabella. Ad esempio, se dobbiamo abilitare un utente, ci basta impostarne il campo Enabled a true. Recuperare tutta l'entità e aggiornare una sola proprietà non ha senso. Quello che possiamo fare è creare una entità dove impostiamo solo i campi chiave, attaccarla al contesto e dopo modificare le sole proprietà che vogliamo.
User u = new User{ ID = 1 };
ctx.AttachTo("Users", u);
u.Enabled = true
ctx.SaveChanges();In questo modo lo state manager è a conoscenza solo del fatto che la proprietà Enabled è stata modificata e quindi aggiornerà solo la relativa colonna sul database.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Mischiare codice server side e client side in una query LINQ con Entity Framework
Eseguire query in contemporanea con EF
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
Utilizzare ExecuteUpdate per aggiornare colonne JSON in Entity Framework
Mappare una complex property di una entity su un campo JSON
Usare la parola chiave field per semplificare la scrittura di proprietà in C#




