Хорошо, я хочу воссоздать проект, который я создал с помощью 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;
}
}