-5

次のクエリがあります。

{
 SELECT A.Id, C1.FullName AS APerson, C2.FullName As BPerson
 FROM TableA AS A
   LEFT JOIN TableC AS C1 ON A.FK_PersonA = C1.Id
   LEFT JOIN TableC AS C2 ON A.FK_PersonB = C2.Id
 UNION
 SELECT B.Id, B.FullName1 AS APerson, B.FullName2 AS BPerson
 FROM TableB AS B
}

これを Entity Framework ラムダ クエリに変換したいのですが、可能ですか?

データ・モデル

ここに画像の説明を入力

4

1 に答える 1

2

まず、モデルのリポジトリを作成する必要があります。これについてはこちらをご覧ください。したがって、これを使用できます:

var ret = 
    (from taRec in TableA.GetAll()
    join tc1 in TableC.GetAll on taRec.FK_PersonA equals tc1.Id
      into tcRecs1
    from tcRec1 in tcRecs1.DefaultIfEmpty()
    join tc2 in TableC.GetAll on taRec.FK_PersonB equals tc2.Id
      into tcRecs2
    from tcRec2 in tcRecs2.DefaultIfEmpty()
    select new {
        taRec.Id, APerson = tcRec1.FullName, BPerson = tcRec2.FullName
    }).Union(
        from tbRec in TableB.GetAll()
        select new {
            tbRec.Id, APerson = tbRec.FullName, BPerson = tbRec.FullName
    });
于 2013-10-31T16:59:15.177 に答える