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
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Utilizzare il trigger SQL con le Azure Function
Utilizzare QuickGrid di Blazor con Entity Framework
.NET Conference Italia 2024
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Creare gruppi di client per Event Grid MQTT
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Creare una custom property in GitHub
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Aggiornare a .NET 9 su Azure App Service
Generare un hash con SHA-3 in .NET