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
Code scanning e advanced security con Azure DevOps
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Creare gruppi di client per Event Grid MQTT
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Sostituire la GitHub Action di login su private registry
Usare le collection expression per inizializzare una lista di oggetti in C#
Il nuovo controllo Range di Blazor 9
C# 12: Cosa c'è di nuovo e interessante
Migliorare l'organizzazione delle risorse con Azure Policy
Generare un hash con SHA-3 in .NET
Creare una libreria CSS universale: Immagini
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API