我正在尝试根据另一个表中的前 5 个值从我的数据库中选择一个表,但遇到了障碍。
这是没有前 5 个值的版本:
from d in Deals
from f in FacebookUserCategories
from s in SubCategories
where s.FacebookCategoryId == f.FacebookCategoryId
&& f.FacebookUserId == 1437585390
orderby f.Count descending
select d
但是,我需要的是根据 SubCategories 表中的前 5 个 ID 选择交易,这意味着我必须使用 Take 运算符。
下面的 linq 将帮助我实现这一目标:
(from f in FacebookUserCategories
from s in SubCategories
where s.FacebookCategoryId == f.FacebookCategoryId
orderby f.Count descending
select s.Id).Take(5)
无论如何,我是否可以从这里选择具有 SubCategoryId 作为连接的 Deals 表?
只是回顾一下......我可以编写sql ..它会是这样的:
SELECT t1.* FROM Deal t1
INNER JOIN (
SELECT TOP 5 t2.Id FROM FacebookUserCategory , SubCategory t2
WHERE FacebookUserId = '1437585390'
AND FacebookUserCategory.FacebookCategoryId = t2.FacebookCategoryId
ORDER BY Count DESC) tbl
ON t1.SubCategoryId = tbl.Id