在LINQ to SQL中,如何使用max执行子查询?

时间:2011-11-12 00:30:56

标签: linq-to-sql correlated-subquery

var ItemScores =(来自响应.ItemScores,其中a.LastUpdated == (来自d in response.ItemScores,其中a.Word_Id == d.Word_Id选择a.LastUpdated).Max()选择a);

上述查询应该只返回每个Word的最新ItemScore。 每个Word可以有一个或多个ItemScores,因为多个得分者可以对同一个单词进行评分。 我正在尝试获取项目分数列表(每个单词一个),这样每个项目分数都是该单词的最新分数。

遗憾的是,此查询返回所有项目分数(每个单词的多个项目分数),好像它完全忽略了LastUpdated子查询。

1 个答案:

答案 0 :(得分:1)

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