Fino alla versione 2.0, Entity Framework Core non offre il supporto per le transazioni utilizzando TransactionScope. Questa mancanza non è propria di Entity Framework, bensì di ADO.NET che fino alla versione 2.0 di .NET Core non ha il supporto a TransactionScope. Con la versione 2.1 di .NET Core, il supporto a TransactionScope è stato aggiunto e quindi possiamo beneficiarne anche in Entity Framework Core come il prossimo script dimostra.
using (var ts = new TransactionScope()) { using (var ctx1 = new MyContext) { ... ctx1.SaveChanges(); } using (var ctx2 = new MyContext) { ... ctx2.SaveChanges(); } ts.Complete(); }
In questo esempio, sebbene i due contesti salvino i loro dati usado il metodo SaveChanges, niente viene persistito sul database finchè l'oggetto TransactionScope non esegue il commit della transazione.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Usare i Top Level statement in C#
Autenticazione condizionale a due fattori con Azure Active Directory B2C
Utilizzare HTTP/2 con HttpClient in .NET Core
Persistere una proprietà complessa di una classe come JSON in una colonna di una tabella con Entity Framework Core
Esecuzione condizionale dei template nelle pipeline YAML di Azure DevOps
Dimensionare dinamicamente una TextArea in Blazor
Taggare automaticamente un team member in work item tramite Azure DevOps
Creare un templated component per Blazor
Dark mode e selezione dei temi in un'applicazione Xamarin Forms
Eseguire del codice personalizzato al click di una checkbox in Blazor
Blazor: WebAssembly
Blazor: from 0 to SPA