2 つの別個の Entity Framework モデルに 2 つのテーブルがあり、2 つのテーブル間で JOIN を作成してデータを取得したいと考えています。Entity Framework 3.1 を使用しています。
2 つのテーブル間で JOIN を実行して情報を取得することは可能ですか?
はいの場合、「LINQ to Entities」または「Entity SQL」を使用する必要がありますか?
2 つの別個の Entity Framework モデルに 2 つのテーブルがあり、2 つのテーブル間で JOIN を作成してデータを取得したいと考えています。Entity Framework 3.1 を使用しています。
2 つのテーブル間で JOIN を実行して情報を取得することは可能ですか?
はいの場合、「LINQ to Entities」または「Entity SQL」を使用する必要がありますか?
Entity Framework モデルは、データベース (ストア) モデルとクラス モデル間のマッピングです。現在 (あるとしても) 1 つの EF モデルは別のモデルのマッピング情報を読み取ることができません。そのため、エイリアン クラスをテーブルにマップすることはできません。ましてや、そのテーブルを含む SQL を作成することはできません。EF に関する限り、テーブルは 2 つのまったく異なるデータベースにある可能性があります。
代替案:
ToList()
です。OrderId
使用される s のリスト- 非現実的な例、OK)。Contains
Orderline
私の知る限り、EFはそれをしません。複数のドメインからのエンティティを含む単一の式を作成することはできません。結果の最初の項目を要求すると失敗します。
あなたはおそらくこれまでにこれを理解しましたが、ここに私の解決策があります:
var data = db.FirstEntity
.Join(db.SecondEntity, ent1 => ent1.ID, ent2 => ent2.ForeignKeyID,
(ent1, ent2) => new { LeftSideObject = ent1, RightSideObject = ent2 })
.Select(x => x.LeftSideObject);
変数にはできる限り一般的な名前を付けましたが、意味があることを願っています!