Строка подключения изменения времени выполнения в Asp.Net Core - PullRequest
0 голосов
/ 01 июля 2019

Я работаю над приложением ASP .NET Core.я должен изменить соединение с базой данных во время выполнения.Здесь я использую файл appsettings.json.

Пожалуйста, я много пробовал, но у меня ничего не получается, поэтому мне нужна ваша помощь.

Например:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {

            var builder = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json");
            var configuration = builder.Build();

            optionsBuilder.UseMySql(configuration
                ["ConnectionStrings:Defaultconnection"]);

        }

Заранее спасибо.

1 Ответ

1 голос
/ 01 июля 2019

Я могу придумать пару способов сделать это ..

1) Создайте DbContextFactory, которая создаст ваши экземпляры для вас. Может быть, применить атрибут к каждому контексту, который позволит вам извлечь соответствующую строку подключения БД из вашей коллекции строк подключения в тот момент, когда фабрика создает экземпляр? Небольшое отражение в DbContextFactory сделает это достаточно просто.

2) Если набор DbContexts вряд ли изменится и / или строки подключения либо - вы можете зарегистрировать каждый DbContext вручную, используя метод расширения AddDbContext <> () в ServiceCollection, а затем просто внедрить тот DbContext, который вы хочу в классы вы хотите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...