2011-12-16 4 views

答えて

4

異なるデータコンテキスト間で結合を行うことはできません。あなたはlinqオブジェクトとの結合を行う必要があります

var crossJoin = from a in context.TableA.AsEnumerable() 
       from b in context2.TableB.AsEnumerable() 
       select new 
       { 
        a, 
        b 
       }; 
+0

これは単一データコンテキストです。それは私がリンクで言及したように2つの異なるデータコンテキストを照会することではありません。 –

+0

@Gator - 私はそれを忘れて申し訳ありません。私は答えを更新しました – Aducci

+0

ああ!それは何ですか? –

1

エンティティフレームワーククエリは単一コンテキストの境界を越えることはできません。 @Aducciが応答で示したようにクロス・ジョインがサポートされていますが、クロス・コンテキストまたはクロス・データベースのlinq-to-entitiesクエリはサポートされていません。

+0

これは "いいえ"ですが、質問に対する正解ですが、彼らが "実行"されている限り、オブジェクトの2つの異なるリストに参加することができます。前述したように、データベースではなくアプリケーションでフィルタリングを行いますが、これは考慮する必要があります – hanzolo

0

EFコア2.0とASPNETコア2.0を使用します。この参照を使用して実際にクロスジョインできます。 NonEquijoinの例に注目してください。

https://docs.microsoft.com/en-us/dotnet/csharp/linq/perform-custom-join-operations 
関連する問題