gpt4 book ai didi

c# - Entity Framework linq 查询,根据计数从收藏夹的表中获取前 N 个 postID

转载 作者:搜寻专家 更新时间:2023-10-30 23:45:07 25 4
gpt4 key购买 nike

我有一个用于跟踪收藏夹的数据库

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

我正在尝试在 Linq 中编写一个 Entity Framework 查询,以获取该数据库中最常出现的 12 个 PostID

我已经查看了文档,但我只是没有整理如何执行此操作。目的是为了一个“最喜欢的”页面

我觉得有一个优雅的解决方案,但我已经让自己感到沮丧,以至于我无法在不让整个 table 都感到这是个坏主意的情况下想出办法。

最佳答案

在 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 }> .

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com