簡體   English   中英

實體框架linq查詢,根據計數從收藏夾的表中獲取前N個postID

[英]entity framework linq query, get top N postIDs from favorite's table based on count

我有一個數據庫來跟蹤Favorites ,看起來像

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

我試圖在Linq中編寫一個實體框架查詢,該查詢將獲取在該數據庫中最常出現的12個PostIDs

我看了一下文檔,但是我沒有將如何做到這一點放在一起。 目的是為“最喜歡的”頁面

我覺得這是一個優雅的解決方案,但是我感到沮喪,以至於我不考慮如何做到這一點,而不是整頓整張桌子,這是一個壞主意。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM