使用Top X在LINQ中编写子查询

sta*_*101 4 .net c# sql linq

在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)
Run Code Online (Sandbox Code Playgroud)

内部查询使用SiteID连接,因为我正在尝试检索每个SiteID的前3行.

Mar*_*zek 5

那个怎么样:

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
Run Code Online (Sandbox Code Playgroud)

这就是你明确地将SQL翻译成LINQ查询.