Quando sviluppiamo servizi che persistono dati con Entity Framework, spesso per aggiornare i dati ci facciamo passare una entity che poi attacchiamo al contesto. Una volta attaccata al contesto l'entity è ancora in stato di Unchanged, ma possiamo modificarne facilmente lo stato a Modified usando le API del DbContext.
Una volta impostato lo stato dell'entity su Modified, tutte le proprietà dell'entity vengono a loro volta marcate come Modified, ma non sempre questo è il risultato che si vuole ottenere in quanto a volte vogliamo che siano modificate tutte le proprietà tranne una.
Per impostare tute le proprietà a Modified tranne una con Entity Framework 4.x, dobbiamo impostare una a una le proprietà che vogliamo modificare su Modified in quanto con Entity Framework 4.x non è possibile marcare una proprietà come non modificata una volta che è stata marcata su Modified. Con Entity Framework 5 le cose cambiano in quanto possiamo impostare una singola proprietà come non modificata anche quando questa era impostata su Modified.
//Attacco l'entity al contesto ctx.People.Attach(person); //Imposto l'entity e tutte le proprieta a Modified ctx.Entry(person).State = EntityState.Modified; //Imposto una singola proprieta come non modificata ctx.Entry(person).Property(p => p.CreationDate).IsModified = false;
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Rendere le variabili read-only in una pipeline di Azure DevOps
Fornire parametri ad un Web component HTML
Utilizzare Containers in .NET Aspire
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Utilizzare WebJobs su Linux con Azure App Service
Utilizzare l nesting nativo dei CSS
Utilizzare WhenEach per processare i risultati di una lista di task
Creare agenti facilmente con Azure AI Agent Service
Gestire progetti .NET + React in .NET Aspire
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Creare una libreria CSS universale: Immagini
Supportare la sessione affinity di Azure App Service con Application Gateway
I più letti di oggi
- Gestire coppie chiave-valore con Autocomplete di jQuery UI in ASP.NET
- Usare Json.NET come motore di serializzazione in ASP.NET MVC
- Microsoft Security Bulletin MS05-014
- Effettuare un redirect permanente di una pagina ASP.NET 4.0
- Attivare l'output caching su ASP.NET Web API
- Gestione CSS in Blazor con .NET 9