2014-04-20 34 views
0

我有以下數據EF查詢幫助 - 分組及子查詢

ID Code Rev 
1 A1  1 
2 A1  2 
3 A1  3 
4 A3  1 
5 A2  1 
6 A2  2 

,我需要選擇它針對每個代碼一個記錄的記錄數據表(文檔,這是DBSet在我的情況下),這具有最高的Rev.我的預期結果是

ID Code Rev 
3 A1  3 
6 A2  2 
4 A3  1 

ID列是表的PK,Code + Rev是唯一的。
注意:表中還有其他字段,我需要得到結果。理想的做法是獲得一個iqueryable(Doc是模型類),我想在內部查詢中選擇ID,然後用它來獲取文檔的iQueryable。

由於提前

回答

1

試試這個:

var res = from r in DOCs 
      where (from c in DOCs 
       group c by c.Code into g 
       select new { 
        localCode = g.Key, 
        localRev = g.Max(t => t.Rev) 
       }).Any(x => x.localCode == r.Code && x.localRev == r.Rev) 
      select r; 

res是IQueryable的。

+0

工程就像一個魅力,謝謝! – InsI