У меня есть 2 строки подключения в моем appsettings.json, и я использую dbContext.Database.Migrate (); в методе Configure для создания базы данных, если основная строка подключения, которую я использовал для создания службы DbContext в методе ConfigureServices, была неправильной, я сталкиваюсь с исключением, поэтому я хочу изменить строку подключения службы Dbcontext в области исключений.
Как мне этого добиться?
Я пытался выполнить миграцию в ConfigureServices, но я не знаю, как создать объект DbContext и как его протестировать.
в ConfigureServices
services.AddDbContext<RedContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
в Configure
using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope())
{
var dbContext = serviceScope.ServiceProvider.GetService<RedContext>();
var roleManager = serviceScope.ServiceProvider.GetService<RoleManager<IdentityRole>>();
var userManager = serviceScope.ServiceProvider.GetService<UserManager<ApplicationUser>>();
// Create the Db if it doesn't exist and applies any pending migration.
try
{
dbContext.Database.Migrate();// throws exception if CS is wrong
DbSeeder.Seed(dbContext, roleManager, userManager);
}
catch (Exception)
{
// remove old service and create new dbcontext DI service in IserviceCollection with secondary connection string
//dbContext.Database.Migrate();
// dbContext.Database.GetDbConnection()
}