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 に答える