2011-02-10 7 views
4

自分のプロジェクトに、データベースの多くのビューにマップするモデルがありますが、別のデータベースのビューにマップする必要があります。複数のデータベースをマッピングするEFモデル

どうすればいいですか?別のモデルを作成する必要がありますか?私はしたくないが、私はしなければならない。

答えて

3

同じモデルでは、2つの異なるデータベースからデータを取得できません。最も簡単な方法は、他のデータベース、つまり内部的に外部DBビューを呼び出す抽象ビューからデータを呼び出して返すビューを同じデータベースに作成することです。

+0

ああ。実際、私はそれをしたいと思っていましたが、私には可能性が禁じられています。 :P – khr055

2

データベースが同義語をサポートしている場合、他のデータベースと同義語を設定し、edmx定義を1番目のデータベースの定義とマージすることができます。私はそれを行う方法を書いたhere

基本的に、2つのedmxファイルと、2つのファイルを作業中のedmxファイルにマージするスクリプトがあります。シノニムは、完全なデータベースパスを必要とせずに、1つのデータベースを別のデータベースから参照するために使用されます。他のテーブルのシノニムを作成するには、データベース内で実行する必要があります

SQLスクリプト:あなたはEntity Frameworkの内のコードの最初のアプローチを使用している場合

0

は、ここで他のデータベースからテーブルへのEFエンティティをマッピングする方法でありますデータベース:(流暢API)で

CREATE SYNONYM OtherDatabaseTableSynonym FOR otherdatabase.dbo.otherdatabasetable 

Entity Frameworkのマッピング:私は、他のDBからのデータを使用してビューを作ることを愛するだろうか

modelBuilder.Entity<OtherDatabaseTableEntity>().ToTable("OtherDatabaseTableSynonym").HasKey(x => x.id); 
関連する問題