Per convenzione, la classe DbContext legge la stringa di connessione dalla sezione ConnectionStrings del file di configurazione laddove la chiave della sezione corrisponda al nome della classe che eredita da DbContext. Ad esempio, se la classe che eredita da DbContext si chiama MyContext, automaticamente viene cercata nella sezione ConnectionString la stringa di connessione con chiave MyContext così come mostrato in questo esempio.
<connectionStrings> <add key="MyContext" value="..."> </connectionStrings>
Sebbene questo meccanismo sia comodo nella maggior parte dei casi, ci sono dei casi in cui abbiamo la necessità di recuperare la stringa di connessione a run time. In questi casi, dobbiamo creare un nuovo costruttore nella classe MyContext. Questo costruttore accetta in input la stringa di connessione e a sua volta chiama il costruttore base passando la stringa. Nel nostro codice non dobbiamo fare altro che recuperare la stringa di connessione (dal file di configurazione, da un servizio o altro ancora) e passarla al nuovo costruttore.
public class MyContext : DbContext { public MyContext(string connectionString) : base(connectionString) { } } ... var connectionString = GetConnectionString(); var myContext = new DbContext(connectionString);
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati
Miglioramenti nelle performance di Angular 16
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Specificare il versioning nel path degli URL in ASP.NET Web API
Evitare la script injection nelle GitHub Actions
Le novità di Angular: i miglioramenti alla CLI
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Evitare la command injection in un workflow di GitHub
Applicare il versioning ai nostri endpoint ASP.NET Core Minimal API
Filtrare e rimuovere gli elementi dalla cache del browser tramite le API JavaScript
Usare una container image come runner di GitHub Actions
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente