如何获得按日期分组的最多观看帖子?

时间:2012-09-17 19:40:03

标签: linq entity-framework

我想对帖子进行排序,以显示按日期分组的观看次数最多的帖子,以便每天都能看到热门的帖子,然后是下一个,然后是下一个。

如何在linq中编写此查询?基于可能的方法。

1 个答案:

答案 0 :(得分:1)

int postsPerDay = 5;

var topPostsByDate = Posts
    .GroupBy(post => post.Date)
    .Select(grp => new
        {
            Date = grp.Key,
            TopPosts = grp
                .OrderByDescending(post => post.Views)
                .Take(postsPerDay)
                .Select(post => new Post(post))
        })
    .OrderByDescending(x => x.Date);

编辑:从数据行构造一个新的Post对象。假设Post有一个接受DataRow的构造函数;改变以适应。