我正在使用 Entity Framework
所以我想使用两个表编写一个 sql 命令 - tblContractor 和 tbSiteByCont 表。
在 SQL 中看起来像这样
SELECT PKConID, Fname, Lname
FROM tblContractor
WHERE (PKConID NOT IN
(SELECT FKConID
FROM tbSiteByCont
WHERE (FKSiteID = 13)))
但是我不知道怎么用Linq写。
我试过这样
var query1 = from s in db.tblSiteByConts
where s.FKSiteID == id
select s.FKConID;
var query = from c in db.tblContractors
where c.PKConID != query1.Any()
select Contractor;
但这行不通。 那我应该怎么写呢?程序是什么?我是 Linq 的新手。
最佳答案
var _result = from a in tblContractor
where !(from b in tbSiteByCont
where FKSiteID == 13
select b.FKConID)
.Contains(a.PKConID)
select a;
或
var siteLst = tbSiteByCont.Where(y => y.FKSiteID == 13)
.Select(x => x.FKConID);
var _result = tblContractor.Where(x => !siteLst.Contains(x.PKConID));
关于c# - 如何使用 Linq "NOT IN",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15424770/