C# Linq-将1个查询的结果集与另一个表连接

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

我有一个汇总表,其中有员工及其合规性的详细信息,我得到的是投诉ID为6或9的员工

我必须从主tblEmployee表中获取这些员工的全名

表名为tblEmployee,列名为FullName

EmployeeID是这两个表tblEmployee和tblEmployeeCompliation之间的公用键

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;