我正在使用EF5使用存储库模式,我想指定连接字符串的名称。
在我以前的旧项目中,我曾经这样做过:
MyEntities _entities = new MyEntities("Name=MyConnectionString");
当我创建一个在VS2012中使用EF5的新“api”时,字符串参数没有重载。
我试着这样做:
private MyEntities _entities = new MyEntities ();
public MyRepository()
{
_entities.Database.Connection.ConnectionString = "Name=MyConnectionString";
}
我明白了:
“没有名为'MyEntities'的连接字符串可以在 应用程序配置文件“
我应该如何为存储库提供给定的连接字符串?我应该编辑那些代码生成文件吗?
答案 0 :(得分:1)
显然,唯一需要的是使用它的部分课程。
我是这样做的......
public partial class MyEntities : DbContext
{
public MyEntities(string connectionString) : base(connectionString) { }
}
之后我能够使用:
MyEntities _entities = new MyEntities("Name=MyConnectionString");
答案 1 :(得分:0)
使您的MyEntities
构造函数如下:
public MyEntities()
: base("MyConnectionString")
{
}
和更通用的方式:
public MyEntities(string connectionString)
: base(connectionString)
{
}
假设MyEntities
类是继承DbContext
并使用它:
public MyRepository()
{
using (MyEntities db = new MyEntities())
{
}
//or
using (MyEntities db = new MyEntities(connectionString))
{
}
}