2

接続文字列を DbContext コンストラクターに渡す方法はありますか。アプリまたは web.config に構成設定を含めるという考えは本当に嫌いです

EF モデルを含む dll を参照する場合は、DLL がどこに移動しても、構成を中央の場所に置いて、コンストラクターがその設定にアクセスするのではなく、そのばかげた構成をコピーすることに注意する必要があります。

これは可能ですか、それとも私たちはこの欲求不満と一緒に暮らすことを余儀なくされていますか? すべての EF モデルが Web アプリケーションまたは exe に存在するわけではありません。

ありがとう

更新: このエラーは、構成ファイルに接続文字列がないことに関連していると思いました。SqlConnection オブジェクトを渡していますが、同じエラーが発生します。なぜこのエラーが発生するのですか?

4

1 に答える 1

2

接続文字列となる文字列を受け取る DbContextコンストラクターオーバーロードを使用できます。

string connectionString = "metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=\"data source=localhost;initial catalog=Test;integrated security=True;multipleactiveresultsets=True;App=EntityFramework\"";
using (DbContext db = new DbContext(connectionString))
{
    var m = db.Set<Main>().Take(1).First();
    Console.WriteLine(m.Id);
}
于 2011-10-26T21:52:08.127 に答える