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
Utilizzo delle stepped value functions nel CSS
Ridurre il reflow cambiando il CSS
Gestione degli eventi nei Web component HTML
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
Integrare SQL Server in un progetto .NET Aspire
Ridimensionamento automatico input tramite CSS
Gestione CSS in Blazor con .NET 9
.NET Aspire per applicazioni distribuite
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Anonimizzare i dati sensibili nei log di Azure Front Door
Gestire il routing HTTP in Azure Container App
Centralizzare gli endpoint AI Foundry con Azure API Management


