在EF5中为api指定连接字符串

时间:2013-03-13 07:51:02

标签: c# entity-framework

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

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

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

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

我试着这样做:

private MyEntities _entities = new MyEntities ();

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

我明白了:

  

“没有名为'MyEntities'的连接字符串可以在   应用程序配置文件“

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

2 个答案:

答案 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))
     {

     }
}
相关问题