【发布时间】:2014-04-12 11:41:02
【问题描述】:
我有一个 linq 查询,它只使用实体框架选择最高结果。
var countOfArticlesPerCity = db.ArticleViews
.GroupBy(s => new { s.ArticleID, s.ActualCity })
.Select(g => new { g.Key.ArticleID, g.Key.ActualCity, Count = g.Count() });
var highestArticleCountPerCity = countOfArticlesPerCity
.GroupBy(x => x.ActualCity)
.Select(g => g.OrderByDescending(x => x.Count)
.FirstOrDefault());
var highestArticleCountPerCityWithArticleTitle = db.Articles
.Join(highestArticleCountPerCity, x => x.ID, p => p.ArticleID, (x, p) => new { x.title, p.ActualCity, p.Count });
foreach (var line in highestArticleCountPerCityWithArticleTitle)
{
ViewBag.viewedByCity = line.title + ", " + line.ActualCity + " (" + line.Count + ")";
}
如何将其转换为选择前 3 个结果?
【问题讨论】:
-
看
Take方法。
标签: .net linq asp.net-mvc-4 linq-to-entities