Подтвердить что ты не робот

EF 5 Изменение строки подключения во время выполнения

Хорошо, я хочу воссоздать проект, который я создал с помощью EF 4.1 в EF 5.0, достаточно простой или, по крайней мере, я думал. Одна из моих старых проектов заключается в том, что я смог изменить строку подключения базы данных во время выполнения в EF 4.1:

using (var myContext = new MyEntities(ConnectionString))
{

}

Easy-peasy, но в EF 5.0 вам нужно сделать это по-другому:

string connectionString = "data source=LocalHost;initial catalog=MyDatabase;user id=MyUserName;password=MyPassword;multipleactiveresultsets=True;App=EntityFramework";

using (var myContext = new MyEntities())
{
         myContext.Database.Connection.ConnectionString = connectionString;
}

Теперь мне понадобилось 2 часа, чтобы понять, так что, наверное, мой вопрос заключается в правильном способе изменения строки подключения во время выполнения или нет? Если это так, они внесли это изменение?

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

UPDATE

Я перечитал первую ссылку, которую я опубликовал, и нашел другое решение, просто создал частичный класс:

public partial class MyEntities : DbContext
{
    public MyEntities(string connectionString) : base(connectionString) 
    {
          Database.Connection.ConnectionString = connectionString; 
    }
}
4b9b3361

Ответ 1

Используйте перегрузку конструктора контекста, которая принимает строку подключения в качестве параметра.