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
Gestire liste di tipi semplici con Entity Framework Core
Creare un webhook in Azure DevOps
Verificare la provenienza di un commit tramite le GitHub Actions
Miglioramenti agli screen reader e al contrasto in Angular
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Disabilitare automaticamente un workflow di GitHub (parte 2)
Utilizzare politiche di resiliency con Azure Container App
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Creare un'applicazione React e configurare Tailwind CSS
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Usare un KeyedService di default in ASP.NET Core 8
Limitare le richieste lato server con l'interactive routing di Blazor 8