我有一个数据库用来跟踪

[ID]
[PostID]
[userID]
[DateFavorited]

我试图在linq中编写一个实体框架查询,它将得到这个数据库中最常出现的12Favorites
我已经看过文档了,但我只是没有把如何做到这一点放在一起。目的是为了一个“最受欢迎”的页面
我觉得有一个优雅的解决方案,但我已经挫败了自己,以至于我想不出一个办法来做它,而不宴请整个桌子,这是一个坏主意。

最佳答案

在SQL中,这将是:

SELECT
    TOP 12
    PostID,
    COUNT(*) As FavCount
FROM
    Favorites
GROUP BY
    PostID
ORDER BY
    FavCount DESC

在林肯,我相信会是:
var ret = db.Favorites.GroupBy(
    fav => fav.PostId
).Select(
    favGroup => new {
        PostId = favGroup.Key,
        Count = favGroup.Count()
    }
).OrderBy(
    row => row.Count
).Take( 12 );

ret的类型为IEnumerable<Anonymous{ PostId, Count }>

关于c# - Entity Framework linq查询,根据计数从收藏夹的表中获取前N个postID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29812458/

10-12 20:29