1

同じドメインモデルを使用する複数のプロジェクトのソリューションがあります。このようにして、ドメインモデルを保持するクラスライブラリを作成しました。このクラスライブラリには、プロジェクト内で使用される他のパラメータも含まれています。次に、各プロジェクトのクラスライブラリへの参照を追加します。私のクラスライブラリには、この例から派生したリポジトリクラスもいくつかあります。

ただし、データベースへの接続に問題があります。データベースにデータベースコンテキストクラスを定義し、そこでデータベースセットを設定したので、クラスライブラリがデータベースに接続できるようにしたいです。単一のプロジェクトでは、通常、web.configファイルで接続文字列を定義します。ただし、クラスライブラリにはweb.configファイルがありません。接続文字列を設定するにはどうすればよいですか?

編集

クラスライブラリで次のように定義されたデータベースコンテキストのコンストラクターmydbcontextがあるとします。

public mydbcontext() : base(ConfigurationManager.ConnectionStrings["DatabaseCon"].ConnectionString)
    {

    }

この権利を理解していれば、各プロジェクトの接続文字列の名前を「DatabaseCon」に設定するだけで大​​丈夫ですか?

4

2 に答える 2

1

あなたはそうしない。

接続文字列を、それを必要とするクラスへの依存関係として渡します。

アクセスをカプセル化できますが、このライブラリを使用するプログラムでインスタンス化する必要があります。このプログラムは、接続文字列を構成に保持します。

于 2012-12-29T16:38:32.940 に答える
0

クラスライブラリを使用しているアプリケーションのweb.configファイルで接続文字列を定義する必要があります。別の方法として、接続文字列をクラスライブラリ内のコンストラクターにハードコーディングすることDbConextもできます(外部から変更できないため、かなり悪いアプローチです)。たとえば、異なる接続文字列を異なるものに対して管理するのは困難です。環境-ステージング、本番、..。

于 2012-12-29T16:38:13.500 に答える