1

我正在使用使用 EF5 的存储库模式,并且我想指定连接字符串的名称。

在我以前的 EF 项目中,我曾经这样做过:

MyEntities _entities = new MyEntities("Name=MyConnectionString");

当我在 VS2012 中创建一个使用 EF5 的新“api”时,字符串参数没有重载。

我试图这样做:

private MyEntities _entities = new MyEntities ();

public MyRepository()
{
   _entities.Database.Connection.ConnectionString = "Name=MyConnectionString";
}

我得到:

“在应用程序配置文件中找不到名为‘MyEntities’的连接字符串”

我应该如何给存储库一个给定的连接字符串?我应该编辑那些代码生成文件吗?

4

2 回答 2

1

显然,唯一需要的就是一个部分类来使它工作。

这就是我是如何做到的......

public partial class MyEntities : DbContext
{
    public MyEntities(string connectionString) : base(connectionString) { }
}

之后我可以使用:

MyEntities _entities = new MyEntities("Name=MyConnectionString");
于 2013-03-13T08:11:11.997 回答
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))
     {

     }
}
于 2013-03-13T07:55:31.473 回答