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