1

Я ищу способ динамического переключения между производственной и тестовой средой.ASP.NET Core EF Code Первый appsettings.json

У меня есть две разные строки подключения к базам данных MSSQL. Я хочу, чтобы динамически передать это моей DbContext:

services.AddDbContext<ViggrContext>(options => 
        options.UseSqlServer(Configuration.GetConnectionString("TestDatabase"))); 

У меня есть два типа публикующих профилей, один для испытания и другой для окружающей среды производства. В этом профиле я выбираю подключение к базе данных. Конечно, профиль теста указывает на строку подключения TestDatabase, а профиль Production указывает на базу данных Production. enter image description here

Но как я могу динамически загружать класс Startup.cs в этом разделе кода?

services.AddDbContext<ViggrContext>(options => 
        options.UseSqlServer(Configuration.GetConnectionString("TestDatabase"))); 

Есть ли у вас какие-либо предложения?

ответ

3

Вы можете настроить различные строки соединения среды в различных AppSettings файлов как this-

Для тестовой среды, использование AppSettings. тест .json

"Data": { 
    "ViggrContext": { 
     "ConnectionString": "" /*<<== TestDatabase connection string */ 
    }, 

Для прод среды, использования AppSettings. прод .json

"Data": { 
    "ViggrContext": { 
     "ConnectionString": "" /*<<== ProdDatabase connection string */ 
    }, 

Использование ASPNETCORE_ENVIRONMENT переменной среды для установки текущей среды, как Test или Prod значения.

В запуске, вы можете использовать как this-

 services.AddDbContext<ViggrContext>(options => 
options.UseSqlServer(Configuration["Data:ViggrContext:ConnectionString"])); 

Смотрите, если это помогает.

Смежные вопросы