Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq 用于筛选子表中基于数据的条件的查询_Linq - Fatal编程技术网

Linq 用于筛选子表中基于数据的条件的查询

Linq 用于筛选子表中基于数据的条件的查询,linq,Linq,根据下表,我希望获得所有员工为active==1的部门名称。我特别想要一个LINQ查询 根据以下数据,仅应列出Z部门 EmpId,EmpName,DepartmentId,Active "1", "A", "1", "0" "2", "B", "1", "1" "3", "C", "1", "1" "4", "D", "2", "0" "5", "E", "3", "

根据下表,我希望获得所有员工为active==1的部门名称。我特别想要一个LINQ查询

根据以下数据,仅应列出Z部门

EmpId,EmpName,DepartmentId,Active
"1",    "A",        "1",    "0"
"2",    "B",        "1",    "1"
"3",    "C",        "1",    "1"
"4",    "D",        "2",    "0"
"5",    "E",        "3",    "1"
"6",    "F",        "3",    "1"


DeptId,DeptName
"1",    "X"
"2",    "Y"
"3",    "Z"
实现上述功能的SQL查询如下:

SELECT `DeptName` FROM `Department` d JOIN `Employee` e ON d.`DeptId` = e.`DepartmentId` WHERE `Active` = 1 AND `DepartmentId` NOT IN 
(SELECT `DepartmentId` FROM `Department` d JOIN `Employee` e ON d.`DeptId` = e.`DepartmentId` WHERE `Active` = 0) GROUP BY `DeptName`;

假设部门与员工之间存在联系:

Departments.Where(dep => dep.Employees.All(emp => (emp.Active == "1")));
否则,从员工链接到部门

Employees.Where(emp => (emp.Active == "1")).
          Select(emp => emp.Department).
          Distinct();