在LINQ中转换子查询
本文关键字:查询 转换 LINQ | 更新日期: 2023-09-27 18:01:45
我在SQL中有这样的子查询
SELECT A.DOCID
FROM mstdocs a, mstdocstats b
WHERE a.DOCID = b.DOCID
AND b.VID = '1'
AND A.DOCID NOT IN (SELECT a.docid
FROM mstdocs a, mstdocstats b
WHERE a.DOCID = b.DOCID
AND b.VID = '1'
AND a.VTAID = '2')
GROUP BY A.DOCID
如何在LINQ中转换该查询。谢谢你的回答
我想你可以把这个问题分成两部分。首先,您可以选择一个不在列表
中var notInList = from a in db.mstdocs
join b in db.mstdocstats on a.DOCID equals b.DOCID
where a.VID == "1" && b.VTAID == "2"
select a.DOCID;
然后你可以使用这个列表来得到你想要的:
var result = from a in db.mstdocs
join b in db.mstdocstats on a.DOCID equals b.DOCID
where !notInList.Contains(a.DOCID) && b.VID == "1"
group a by a.DOCID into g
select g.Key;