我有一个用于跟踪Favorites
看起来像
[ID]
[PostID]
[userID]
[DateFavorited]
我试图在Linq中编写一个实体框架查询,它将获得在此数据库中最常出现的12 PostIDs
。
我查看了文档,但我还没有把如何做到这一点。目的是为了最受欢迎的"页
我觉得有一个优雅的解决方案,但我已经让自己感到沮丧,以至于我无法想到这样做的方式,而不会在整个表格中表达这个糟糕的主意。
答案 0 :(得分:1)
在SQL中,这将是:
SELECT
TOP 12
PostID,
COUNT(*) As FavCount
FROM
Favorites
GROUP BY
PostID
ORDER BY
FavCount DESC
在Linq,我相信会是:
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 }>
。