QA@IT
«質問へ戻る

質問を投稿

Entity Framework 異なるDBのテーブルのJoin

VisualStudio2013 VisualBasic
SQL Server 2012

Entity Frameworkを試しているのですが、異なるDBのテーブルをJOINしてデータを取得する方法がわかりません。

データベース D1のテーブル Table01
データベース D2のテーブル Table02

SQLなら以下の様な書き方で取得できます。
(D1に接続する前提で)
Select T1.Column1, T2.Column2
From Table01 T1 Inner Join D2.dbo.Table02 T2 ON T1.ID=T2.ID

Entity FrameworkはDB毎にContextが作成されるようですが、以下の様な方法を試したところ、
異なるContextを見ているからだめのようでエラーとなります。

Using context1 As New DB1Entities
    Using context2 As New DB2Entities

        Dim rows = From p In context1.Table01
                      Join c In context2.Table02
                      On p.ID Equals c.ID
                      Select (New With {
                        .Column1 = p.Column1,
                        .Column2 = c.Column2}
                      )
    End Using
End Using

アドバイスの程よろしくお願い致します。

VisualStudio2013 VisualBasic
SQL Server 2012

Entity Frameworkを試しているのですが、異なるDBのテーブルをJOINしてデータを取得する方法がわかりません。

データベース D1のテーブル Table01
データベース D2のテーブル Table02

SQLなら以下の様な書き方で取得できます。
(D1に接続する前提で)
Select T1.Column1, T2.Column2
From Table01 T1 Inner Join D2.dbo.Table02 T2 ON T1.ID=T2.ID


Entity FrameworkはDB毎にContextが作成されるようですが、以下の様な方法を試したところ、
異なるContextを見ているからだめのようでエラーとなります。

```vb
Using context1 As New DB1Entities
    Using context2 As New DB2Entities

        Dim rows = From p In context1.Table01
                      Join c In context2.Table02
                      On p.ID Equals c.ID
                      Select (New With {
                        .Column1 = p.Column1,
                        .Column2 = c.Column2}
                      )
    End Using
End Using
```

アドバイスの程よろしくお願い致します。