2

EntityFrameworkDbContextへの接続文字列を提供したいと考えています。それを構成ファイルに保存したくありません。

インスタンスを作成するときに、コンストラクターパラメーターとして接続文字列を渡すことは好みません。インスタンスが内部で開始されるときはいつでも設定できます。たとえば、部分的なコンテキストクラスで設定できます。

設計時のedmxに影響を与えずにこの状況を処理するための最良のアプローチは何ですか。私はグーグルで結論に達することができませんでした。

追加したかっただけです:これはモデルファーストのアプローチです。

ポインタをありがとう。

4

2 に答える 2

0

私は常に構成ファイルに依存してきましたが、ファクトリを実装して DbContext を返すことができます...主に一貫性を保つためです。DbContext の (EF5 の) コンストラクターは、接続文字列をオーバーロードの 1 つとして受け取ります。

http://msdn.microsoft.com/en-us/library/gg679467(v=vs.103).aspx

于 2012-12-12T05:17:55.460 に答える
0

同じ質問があり、まだエレガントなソリューションを探しています。

とりあえず、エンティティの部分クラスを作成して、base(string nameOrConnectionString) コンストラクターを公開できるようにします。

例えば

public partial class MyEntities
{
    public MyEntities(bool arbitraryValue) : base("MyConnectionString") { }
}

次にコードで、新しいコンストラクタ Eg を使用して DBContext を作成します

using (var myEntities = new MyEntities(false))
{
    ....
于 2013-04-03T04:01:35.343 に答える