Ottimizzare l'aggiornamento di una entity sul database con Entity Framework
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.







