2011-11-12 110 views
-1

var ItemScores =(from a in response.ItemScores where a.LastUpdated == (from d in response.ItemScores where a.Word_Id == d.Word_Id select a.LastUpdated).Max()select a);在LINQ to SQL中,如何使用max執行子查詢?

上面的查詢應該只返回每個Word的最新ItemScore。 每個單詞可以有一個或多個ItemScores,因爲多個評分者可以對同一個單詞進行評分。 我試圖獲得一個項目分數列表(每個單詞一個),使得每個項目分數是該單詞的最近一個分數。

不幸的是,此查詢返回所有項目分數(每個單詞有多個項目分數),就好像它完全忽略了LastUpdated子查詢。

回答

1
var itemScores = response.ItemScores 
         .GroupBy(x => x.Word_Id) 
         .Select(g => g.OrderByDescending(x => x.LastUpdated) 
             .First()); 
+0

謝謝盧克。我剛剛意識到我只是有一個「a.LastUpdated」它應該在子查詢中是「d.LastUpdated」。 – Triynko