Linq to SQL Nested
本文关键字:Nested SQL to Linq | 更新日期: 2023-09-27 18:32:36
我有 3 张桌子
工作人员(ID,代码,姓名)
项目(ID,专业名称,描述)
RetaleTbl(IDworker,IDProject)
当我选择一个项目时,我将显示所选项目中的工作人员和所选项目中未显示的工作人员。并且此代码在选定的项目中工作
var selectedPro= from c in db.Worker
from d in db.RetaleTbl
where d.IDProject== ID && c.ID == d.IDworker
select c;
并且此代码工作线程不在选定的项目中(但我有问题,因为 RetaleTbl 表数据有 1 个工人做 2 个项目)
var firstFilter= from c in db.Worker
from d in db.RetaleTbl
where d.IDProject != ID && c.ID == d.IDworker
select c;
现在我还需要一个过滤器 工人不在selectedPro
这应该可以做到。
var projectId= 2; // replace with a valid projectID value
var workersNotInProject = db.Worker.Where(c => !(db.RetaleTbl
.Where(s => s.IDProject== projectId)
.Select(d => d.IDWorker))
.Contains(c.ID)).ToList();
这基本上是 SQL 查询的 LINQ 版本。
SELECT * FROM WORKER WHERE ID NOT IN ( SELECT WORKERID FROM RELATETBL WHERE PROJECTID=2 )