1

組織で初めてEntityFrameworkCodeFirstを使用しています。クエリの1つは、2つのデータベースにまたがる必要があります。SQLクエリは次のとおりです。

SELECT t1.col、t2.col FROM DB1..table1 t1 INNER JOIN DB2..table2 t2 ON t1.key = t2.key

私のすべての検索から、CodeFirstがこのクエリをサポートできるとは思いません。私が読んだ2つの回避策は、DB2.table2を読み取るビューをDB1に作成し、DB1に対してのみすべてのクエリを実行することです。もう1つのオプションは、DB1とDB2に対して別々の読み取りを実行してから、データをコードにマージすることです。

DBが乱雑になるだけなので、多数のビューを設定する必要があります。また、データをマージするときのパフォーマンスが心配です。

コードファーストを介して上記のクエリをサポートすることは可能ですか?

皆さんありがとう。

-トロイ

4

1 に答える 1

1

答えは「いいえ」です。私読んだすべてのことから 、サポートしていません(今のところ?)。ビュー以外でこれを解決する 1 つの方法は、別のデータベース/スキーマ/テーブルを指すシノニムを使用することです。これには独自の注意事項があります。

シノニムの作成 (Transact-SQL)

http://msdn.microsoft.com/en-us/library/ms177544.aspx

次に、シノニムを指すモデルを作成します (最初にデータベースを使用する場合、「偽の」テーブルからモデルを作成するか、スクリプトを使用して EDMX xml をマージすることができます)、JOIN、INSERT、UPDATE などはすべて機能するはずです ( EF と同様)。うまくいけば、これは役に立ちます。他にも選択肢があるかもしれませんが、自分で探しています。

于 2013-03-18T20:57:14.420 に答える