2011-01-14 10 views
1

これは単純でなければなりませんが、2時間の検索を行っていて、答えが見つかりません。これをLinqでエンティティに書き込むにはどうすればいいですか?Linq to Entities - whereステートメント内のサブクエリー

SELECT Reg4, Reg5, Reg6 
FROM dbo.Table1 
WHERE Reg1 = 15 
AND Reg2 = (SELECT MAX(Reg2) FROM dbo.Table2 WHERE Reg1 = 15); 

クエリ式とメソッドベースの両方の構文で両方のことを実行できますか?
TKS

答えて

4
var r1 = 15; 
var q = from t in Context.Table1 
     where t.Reg1 == r1 && 
       t.Reg2 == Context.Table2 
           .Where(t2 => t2.Reg1 == r1) 
           .Max(t2 => t2.Reg2) 
     select t; 

簡単まだあなたは、表1から表2にナビゲーション/関連を持っている場合。しかし、あなたはそれを示していませんでしたので、どちらも私にはなりません....

+0

はい、Table1とTable2の間に関連があります。ここでTable1.Reg1 = Table2.Reg2です。ありがとうございます。 – Pascal

+0

Delegate 'System.Func 'がwhere句で1つの引数を取ることはありません。 – Pascal

+0

今すぐ修正する必要があります。 –