Sto cercando un metodo per passare dinamicamente tra ambiente di produzione e test.
Ho due diverse stringhe di connessione ai database MSSQL. Voglio passare dinamicamente questo al mio dbContext:
services.AddDbContext<ViggrContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("TestDatabase")));
Ho due tipi di profili di pubblicazione, uno per Test e un altro per l'ambiente di produzione. In questo profilo scelgo una connessione al database. Naturalmente il profilo Test punta alla stringa di connessione TestDatabase e il profilo Produzione punta al Database di produzione.
Ma come posso caricare dinamicamente la classe Startup.cs in questa sezione del codice?
services.AddDbContext<ViggrContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("TestDatabase")));
Hai qualche suggerimento ?
È possibile configurare diverse stringhe di connessione dell'ambiente in diversi file di app come questo-
Per l'ambiente di test, utilizzare le impostazioni dell'app. prova .json
"Data": {
"ViggrContext": {
"ConnectionString": "" /*<<== TestDatabase connection string */
},
Per l'ambiente di produzione, utilizzare le impostazioni dell'app. prod. json
"Data": {
"ViggrContext": {
"ConnectionString": "" /*<<== ProdDatabase connection string */
},
Utilizzare la variabile di ambiente ASPNETCORE_ENVIRONMENT per impostare l'ambiente corrente come valori Test o Prod .
In Avvio, puoi usare in questo modo-
services.AddDbContext<ViggrContext>(options =>
options.UseSqlServer(Configuration["Data:ViggrContext:ConnectionString"]));
Vedere se questo aiuta