Использование EF Core .net 2.2.
Попытка создать приложение, в котором есть «живая» база данных и «тестовая» база данных, поддерживающая мое приложение.В настоящее время я публикую несколько сайтов, каждый из которых имеет свои собственные DBContexts, и непосредственно перед публикацией я закомментирую и меняю код строки подключения / db в своем файле startup.cs.
ex:
//services.AddDbContext<DataContext>(options =>
// options.UseSqlServer(Configuration.GetConnectionString("TestDataContext")));
services.AddDbContext<DataContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("LiveDataContext")));
Тогда мои два сайта:
testdata.site.com и aliveata.site.com
Это работает, но это отнимает много времени и неэффективно всякий раз, когда производятся обновления сайта / контроллеров / представлений и т. Д.Кроме того, если бы я когда-либо хотел, чтобы более двух сайтов использовали одну и ту же схему базы данных, необходимая публикация работала бы еще больше.
Вот мое идеальное решение, но я не знаю, как это сделать:
Я хочу отправить данные маршрута на контроллер и заставить контроллер определять строку подключения, когда он выполняет эту часть контроллера:
private readonly POSContext _context;
public CashierController(POSContext context)
{
_context = context;
}
Например, URL будет выглядеть примерно так:
www.site.com / {test or live} / {controller} / {action}
Затем пользователь может переключаться между базами данных на лету, если это необходимо.
Я могуработа черезтьфу часть маршрутизации, но я действительно застрял на том, что делать с частью контроллера и запуска базы данных, чтобы сделать эту работу.
Кто-нибудь есть идея или может заставить меня идти по правильному пути?