0

EntityFrameworkを利用するWebアプリケーションを構築しています。複数のコンシューマーによって使用されるため、エンティティモデルと生成されたクラスを別のプロジェクトに移動しました。

しかし、アプリケーションを実行しようとすると、EntityFrameworkから次のように通知されます。

No connection string named 'X' could be ofund in the application config file. 

この問題を解決するには、すべての消費プロジェクトにEntityFramework接続文字列を追加する必要があります。もちろん、これは厄介なことです。何人かの消費者がいるからです。また、ソフトウェアをさまざまなプロジェクトに分割することで解消したいと思っていた緊密な結合が導入されています。

では、すべての消費プロジェクトではなく、1か所だけで接続文字列を定義することは可能ですか?

注:私はデータベースファーストのアプローチに従っています。

4

1 に答える 1

1

これが可能なのは、接続文字列を受け入れるコンストラクターを使用してコンテキストをインスタンス化できるためです。私たちのプロジェクトの1つには、起動時に接続文字列が1回登録されるContextFactoryがあります。アセンブリ内のすべてのコードは、ファクトリからコンテキストを取得します。

実際、この例ではObjectContextを使用し、登録されている接続とコンテキストの作成時に作成されたメタデータ文字列からファクトリの接続文字列を作成します。これを行うには、EntityConnectionStringBuilderを使用します。

于 2012-06-11T08:33:22.193 に答える