Не удается перенастроить DbContext более одного раза - PullRequest
0 голосов
/ 06 июня 2018

У меня есть .Net Core 2.1 Web API, который общается с базой данных MySQL, используя провайдера Pomelo (версия 2.1.0-rc1-final).Поскольку это мультитенантное приложение, API должен изменять базы данных в зависимости от того, какой арендатор подключается.Интерфейсное веб-приложение сообщает API, какой арендатор выполняет запрос, включив заголовок TenantId в запрос HTPP.

Когда API получает HTTP-запрос от внешнего интерфейса, у меня есть служба в конвейере APIон считывает TenantId из запроса, а затем используется для определения, к какой базе данных должен подключаться API.

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

protected override void OnConfiguring(DbContextOptionsBuilder options)
{
    string connectionString = CreateConnectionString();
    optionsBuilder.UseMySql(connectionString);
    base.OnConfiguring(optionsBuilder);
}

Моя проблема заключается в том, что это работает в первый раз, но во второй раз, когда это событие срабатывает, при выполнении строки optionsBuilder.UseMySql(connectionString); выдает это исключение:

Элемент с таким же ключом уже добавлен.Ключ: Pomelo.EntityFrameworkCore.MySql.Infrastructure.Internal.MySqlOptionsExtension

Это позволяет мне настроить DbContext только один раз.Мне нужно перенастраивать его каждый раз, когда вызывается конечная точка действия API.Есть идеи?

...