Quando si lavora con SQL Azure esiste la possibilità che un errore di rete faccia fallire le query e le scritture sul database. Possiamo limitare questo problema utilizzando la configurazione da codice di Entity Framework e impostando le strategie che in automatico riprovano se una connessione fallisce per problemi di rete così come mostrato nel seguente codice.
public class PeopleConfiguration : DbConfiguration { public PeopleConfiguration() { SetExecutionStrategy(SqlProviderServices.ProviderInvariantName, () => new SqlAzureExecutionStrategy()); SetTransactionHandler(SqlProviderServices.ProviderInvariantName, () => new CommitFailureHandler()); } }
Il metodo SetExecutionStrategy imposta la strategia di retry per SQL Azure grazie alla classe SqlAzureExecutionStrategy. Il metodo SetTransactionHandler imposta la strategia di gestione della connessione. Se si usa la classe CommitFailureHandler questa crea una tabella nel database e crea una riga per ogni transazione. Se la transazione fallisce, sarà cura di Entity Framework cercare di portarla a buon fine in maniera trasparente.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core
Hosting di componenti WebAssembly in un'applicazione Blazor static
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Utilizzare domini personalizzati gestiti automaticamente con Azure Container Apps
Utilizzare i primary constructor di C# per inizializzare le proprietà
Ottimizzazione dei block template in Angular 17
Filtrare e rimuovere gli elementi dalla cache del browser tramite le API JavaScript
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP
Aggiungere interattività lato server in Blazor 8
Creare un'applicazione React e configurare Tailwind CSS
Gestire errori funzionali tramite exception in ASP.NET Core Web API