5

EntityFrameworkとASP.NETMVCを使用してアプリケーションを作成しているので、DALをMVCWebアプリケーションから分離することにしました。そして実際には、次の問題(問題がある場合)を除いてすべて問題ありません。エンティティ接続文字列をDALプロジェクトのapp.configからWebアプリケーションのWeb.configにコピーする必要がありました。そして実際にはそれは正しいように見えます:DALはデータへの接続文字列について知る必要はありません。それはメインアプリケーションの義務です。

しかし、EntityModel(* .edmx)を更新する必要があるため、DALのapp.configにエンティティ接続文字列を保持する必要があるのは本当に好きではありません。Webアプリケーションの接続文字列を参照するためのベストプラクティスはありますか?それとも、今のままにしておきますか?

4

1 に答える 1

6

したがって、ここで何が起こっているのかを簡単に説明します。アプリケーションを開発している場合、DAL プロジェクトは本来、独自のプロジェクトです。DAL プロジェクトを編集するとき、Visual Studio はプロジェクト構成ファイルの値を使用します。したがって、なぜその app.config ファイルに接続文字列が残っているのでしょうか。

ここで、ソリューション全体を Web サーバーに公開すると、Web アプリケーションが実際に実行されるアプリケーションになります。これには、ビルド プロセス中にコンパイルされた DAL dll への参照があります。これにより、DAL dll は web.config からすべての構成値を取得します。これは、これがプライマリ実行アセンブリの構成ファイルであるためです。

あなたの質問に答えるには、モデルを更新する必要があるたびに「新しい接続を作成する」必要がないという理由だけで、おそらく app.config と web.config の両方にそれらを保持するのが最善です。私の知る限り、DAL プロジェクトは、Visual Studio で別のプロジェクト構成ファイルを参照することはありません。ただし、app.config と web.conig の両方に接続文字列が含まれていても、デプロイには影響しません。web.config 設定が常に使用されます。

于 2012-11-12T17:01:02.830 に答える