0

1つのWebアプリがあり、50の州のそれぞれに対して同じコードベースを実行しているとします。データの保存は合法であるため、名前と実際のデータを除いてすべて同じである場合でも、各州は独自の個別のデータベースを持っている必要があります。アプリケーションを単一のコードベースに保持するため。Webサーバー上に50個のアプリのインスタンスがあり、それぞれがweb.configに異なる接続文字列を持っています。

次に、最初に移行でEF5コードを使用します。EF5に1つの指定された接続文字列を使用させたい。既存のデータベースに。モデル内のオブジェクトごとに接続文字列を設定したくありません。お気に入り...

<add name="ProductsContext" connectionString=".....
<add name="UsersContext" connectionString=".....
<add name="LocationsContext" connectionString=".....

次のような1つの接続文字列が必要です

<add name="DefaultConnection" connectionString=".....

どうすればよいですか?

また、モデル内の各オブジェクトをdbcontextの一部にする必要がある場合は、チュートリアルのように別々のコンテキストに配置することをお勧めします。または、すべて同じオブジェクトに含めることができます。これにより、「デフォルトのコンテキスト」を設定できます。コンテキストはいくつ必要ですか?

EFに接続ファクトリを使用させて3つのコンテキストを作成すると、EFは3つのデータベースを作成しようとします。

注アプリの各コピーが異なる名前のデータベースに接続するため、プログラムで接続を指定することはできません。

モデル内の各オブジェクトにデータベースが必要なEFについて本当に混乱しています。また、1つのコードベースで50の個別のデータベースにアクセスし、ユーザーの操作なしでどのデータベースを起動するかを知る方法がある場合にも役立ちます。現在、異なるweb-configファイルで同じコードの別々にホストされているインスタンスを使用することは、Webサーバー上のコードを更新するときに維持するのが難しいです。

提案?ソリューション?ベストプラクティス?

ありがとう!

4

1 に答える 1

0

定義するコンテキスト クラスごとに新しいモデルが作成されます。ほとんどの場合、必要なモデルは 1 つだけなので、アプリごとに 1 つのコンテキスト クラスが必要になります。また、異なるコンテキストのエンティティ間にナビゲーション プロパティがある場合、それらは期待どおりに機能しません。この方法では、接続文字列を指定するために、各 web.config ファイルに 1 行しか必要ありません。

いくつかのエンティティ タイプでモデルを作成する方法については、このチュートリアルをご覧ください: http://msdn.microsoft.com/en-us/data/jj193542

于 2013-03-04T21:39:25.287 に答える