我需要在 LINQ 中编写以下查询的帮助。理想情况下,我想使用一个变量(作为参数传入)作为 Top X 值。建议表示赞赏。

SELECT *
FROM [Link] a
WHERE ID IN (SELECT TOP 3 ID
         FROM [Link] b
         WHERE b.SiteID = a.SiteID
         ORDER BY a.ID)

内部查询使用 SiteID 连接,因为我试图检索每个 SiteID 的前 3 行。

最佳答案

那个怎么样:

from l in links
where
    (from l2 in links
     where l2.SiteID == l.SiteID
     orderby l2.ID
     select l2.ID).Take(3).Contains(l.ID)
select l

那就是您将 SQL 清楚地转换为 LINQ 查询。

关于c# - 使用 Top X 在 LINQ 中编写子查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9774612/

10-12 01:30