2011-01-14 85 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); 

是否有可能做到這一點無論是在查詢表達式和基於方法的語法?
韓國社交協會

回答

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

我不斷收到委託'System.Func '在where子句中不帶1個參數! – Pascal

+0

現在應該修復。 –