0

mvc3 アプリケーションを作成しました。

に基づくビューを.edmx既に作成していDb1ますが、現在はに基づくビューを作成しておりDatabase2、プロジェクト内でこのビューを使用する必要があります。

そのためには、EF.edmxファイルを更新する必要があります。しかし、右クリックしてオプションを選択すると、 Db1 Database2 .edmx`ファイルUpdate model from Database しか取得できませんか? 助けてください。all tables , view ,sps from` its obvious But as i need to use view which is fromhow can i add it into my model

4

5 に答える 5

2

2 つの edmx をマージする場合は、両方の edmx ファイルで部分クラスを同じにします (2 つのデザイナー クラスが存在します)。他の edmx ファイル用に、別のコンストラクターを追加してパラメーター化します。どの edmx をロードするかを識別するパラメーター。

ビジネス層に別のクラス ファイルを追加し、このクラス ファイルに edmx 部分クラスのオブジェクトを作成します。このクラスの下で、誰をロードするかを指定します。edmx ファイルは、edmx 部分クラス コンストラクターのコンストラクターに引数を渡して、どの接続を開く必要があるかを識別します。

決定されたページ名 (カスタム ロジックまたはテーブル名; その edmx が読み込まれます。

Web 構成ファイルでは、複数の接続文字列を複数の edmx ファイルで使用できます。

于 2012-09-13T12:18:57.163 に答える
1

Entity Framework は、複数のデータベースを 1 つのモデル/.edmx ファイルにマッピングすることをサポートしていません (参照: Visual Studio 2010 で 2 つのモデル (edmx) を統合するを参照) 。

したがって、他のデータベース用に個別の .edmx ファイル/モデルを作成し、各モデルを個別のコンテキストで参照する必要があります。プロジェクトにも 2 つの接続文字列が必要です。

于 2012-04-23T14:07:43.530 に答える
0

1つの「ハック」は、たとえば、MS SQLがこれらの2つのサーバーをリンクし、最初のサーバーで他のサーバーからのデータを公開することです。つまり、ビューを介してです。しかし、私はそれが少数のテーブルでのみ管理可能だと思います。巨大なモデルでは、これは苦痛になります。他のデータベース(Firebird、Oracleなど)も同様の方法でこれをサポートしています。

于 2012-04-24T06:22:48.573 に答える
0

ctx を New Entity() として使用する

        ctx.Database.Connection.ConnectionString = conString

使用終了

于 2016-10-19T22:46:59.770 に答える
0

私が行ったことは、db A にストアド プロシージャを作成し、その SP を介して db B にアクセスしたことです。

このアプローチは、同じサーバーに両方のデータベースがある場合にうまく機能します。これらが異なるサーバー上にある場合は、B にリンク サーバーを作成して、同じストアド プロシージャ アプローチを使用して A にアクセスできます。

于 2012-11-02T10:05:32.433 に答える