我需要在 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/