好的,我想重新创建一个使用 EF 4.1 到 EF 5.0 创建的项目,足够简单或者至少我认为。我的旧项目中的一件事是我能够在 EF 4.1 中在运行时更改数据库连接字符串:
using (var myContext = new MyEntities(ConnectionString))
{
}
简单易行,但在 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;
}
现在,我花了两个小时才弄清楚,所以我想我的问题是这是在运行时更改连接字符串的正确方法吗?如果是他们为什么要做出这样的改变?
我确实找到了这个链接,但它没有用。我收到了 Ladislav Mrnka 的第一个答案的第一条评论中详细说明的错误。我后来发现这个链接似乎工作正常。
更新
我重新阅读了我发布的第一个链接,并找到了另一个解决方案,我只是创建了一个部分类:
public partial class MyEntities : DbContext
{
public MyEntities(string connectionString) : base(connectionString)
{
Database.Connection.ConnectionString = connectionString;
}
}