Динамически изменяющаяся строка соединения соединения с БД Entity Framework - PullRequest
0 голосов
/ 20 мая 2019

Я использую MVC5 и Entity Framework 6. Мне нужно выполнить двойную загрузку данных в две разные базы данных, поэтому мне нужно динамически изменить соединение DBContext перед второй загрузкой.

Проводя некоторые исследования, я вижу, что многие люди говорят, что вы можете просто передать строку подключения в качестве параметра DBContext.

Однако в моем случае, похоже, нет никаких перегрузок.которые принимают любые параметры, и когда я проверяю DBContext, у него нет конструктора, который принимает какие-либо параметры.

public partial class Entities : DbContext
{
    public Entities()
        : base("name=Entities")
    {
    }

Является ли это устаревшим конструктором в более новых версиях Entity Framework?Как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

чтобы получить параметр, я думаю, вам нужно добавить строку подключения к методу и использовать столько соединений, сколько вы хотите.

public Entities(string connectionNameInYourWebConfig = "yourDefaultName") : base($"name={connectionNameInYourWebConfig}") { }

Я полагаю, потому что в вашем случае этоиногда я добавляю соединение по умолчанию к параметру.Я надеюсь, что это ответ на ваш вопрос, ура

0 голосов
/ 20 мая 2019

Было бы лучше, если бы каждая база данных имела свой собственный контекст.

Итак, я бы порекомендовал вам иметь два класса, расширяющих DbContext, и вы бы использовали его по мере необходимости.

Поскольку речь идет о разных базах данных, схема может меняться, отображение может быть разным и т. Д.

Если вам нужно извлечь данные такого же типа, вы можете воспользоваться полиморфизмом и избежать множества условий в вашем коде.

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