Quando sviluppiamo applicazioni multitenant ci troviamo sempre davanti a una scelta: utilizzare un solo database per tutti i tenant o utilizzare un database per tenant? Nel caso optassimo per la seconda scelta, dovremmo impostare la stringa di connessione in base all'utente. A partire da Entity Framework Core 5, possiamo modificare la stringa di connessione, anche una volta che il contesto è stato inizializzato, attraverso l'extension method SetConnectionString della classe DatabaseFacade esposta dalla proprietà Database del contesto.
static void Main(string[] args) { using (var ctx = new NorthwindContext()) { var x1 = ctx.Customers.ToList(); ctx.Database.SetConnectionString("newconnectionstring"); var x2 = ctx.Customers.ToList();
In questo esempio, la prima query viene eseguita usando la stringa di connessione impostata in configurazione, mentre la seconda viene eseguita usando la nuova stringa di connessione.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Disabilitare automaticamente un workflow di GitHub (parte 2)
Estrarre dati randomici da una lista di oggetti in C#
Anonimizzare i dati sensibili nei log di Azure Front Door
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Gestire gli accessi con Token su Azure Container Registry
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Implementare l'infinite scroll con QuickGrid in Blazor Server
Testare l'invio dei messaggi con Event Hubs Data Explorer
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Gestire i dati con Azure Cosmos DB Data Explorer
Migliorare l'organizzazione delle risorse con Azure Policy
Gestione degli stili CSS con le regole @layer