Cambiare a runtime la stringa di connessione di Entity Framework Core

di Stefano Mostarda, in LINQ, Entity Framework,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi