C# Linq-将1个查询的结果集与另一个表连接
我有一个汇总表,其中有员工及其合规性的详细信息,我得到的是投诉ID为6或9的员工 我必须从主tblEmployee表中获取这些员工的全名 表名为tblEmployee,列名为FullName EmployeeID是这两个表tblEmployee和tblEmployeeCompliation之间的公用键C# Linq-将1个查询的结果集与另一个表连接,c#,entity-framework,linq,C#,Entity Framework,Linq,我有一个汇总表,其中有员工及其合规性的详细信息,我得到的是投诉ID为6或9的员工 我必须从主tblEmployee表中获取这些员工的全名 表名为tblEmployee,列名为FullName EmployeeID是这两个表tblEmployee和tblEmployeeCompliation之间的公用键 List<Int> employeeIds = new List<int>(); List<string> employeeNames = new List&l
List<Int> employeeIds = new List<int>();
List<string> employeeNames = new List<string>();
employeeIds = EMPDB.tblEmployeeCompliations.Where( e=> e.IsActive == true && (e.ComplianceStateId == 6 || e.ComplianceStateId == 9)).Select( e => e.EmployeeID).Distinct().ToList();
employeeNames = //**//
我必须从船长那里得到这些雇员的全名
tblEmployee表
根据您的要求,您应该选择全名而不是EmployeeID
您需要根据EmployeeID加入tblEmployeeCompliation和tblEmployee
例如:
或
请阅读本文:EMPDB.tblEmployee.where e=>employeeIds.Containse.EmployeeId.selecte=>e.FullName.ToList-我想我需要在这里使用select运算符表TBLCompliance没有FullName列
var result = EMPDB.tblEmployeeCompliations
.Where(e => e.IsActive && (e.ComplianceStateId == 6 || e.ComplianceStateId == 9))
.Select(e => e.FullName).Distinct().ToList();
var employeeNames = EMPDB.tblEmployeeCompliations.Join( EMPDB.tblEmployee,
comp => comp.EmployeeID,
cus => cus.EmployeeID,
(comp, cus) => new { comp, cus })
.Where(e => e.comp.IsActive && (e.comp.ComplianceStateId == 6 || e.comp.ComplianceStateId == 9))
.GroupBy(g=>g.cus.FullName)
.Select(x=>x.Key);
var employeeNames = from comp in EMPDB.tblEmployeeCompliations
join cus in EMPDB.tblEmployee on comp.EmployeeID equals cus.EmployeeID
where comp.IsActive=true && (comp.ComplianceStateId == 6 || comp.ComplianceStateId == 9)
group new { cus, comp } by new { cus.FullName } into g
select g.Key.FullName;