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
Rendere le variabili read-only in una pipeline di Azure DevOps
Testare l'invio dei messaggi con Event Hubs Data Explorer
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Creare una libreria CSS universale: Nav menu
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Migliorare l'organizzazione delle risorse con Azure Policy
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Change tracking e composition in Entity Framework
Utilizzare Container Queries nominali
Generare una User Delegation SAS in .NET per Azure Blob Storage
Ottimizzare le performance usando Span<T> e il metodo Split
I più letti di oggi
- disponibile il nuovo #adsdk per #win8. doc su https://aspit.co/ad3 donwload diretto da https://aspit.co/ad4
- Niente .NET sui server: siamo Microsoft
- Develop and distribute Azure Functions using K8s and CI/CD
- Documentare i servizi REST con Swagger e OpenAPI con .NET 9
- Impersonation di utente per l'esecuzione di codice in una pagina ASP.NET
- Solo 5 minuti all'inizio della keynote!! http://aspitalia.com/build-win8 #BldWin
- #MIX10: Windows Phone - demo Hush Hush, un diario con interfaccia completamente personalizzata