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
Eseguire una GroupBy per entity in Entity Framework
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Le novità di Entity Framework 8
Utilizzare la libreria Benchmark.NET per misurare le performance
I più letti di oggi
- Registrare in una matrice il contenuto di una tabella di un database
- Monad diventa Windows PowerShell e va in RC1
- Nasce il DLR: il .NET Framework 3.5 supporta i linguaggi dinamici
- Using Components in Blazor
- Un Rating Custom Control con DropDownList e jQuery
- Performance in .NET 6 https://aspit.co/b9g di @laxxifer