Linq-根据另一个查询过滤结果集

时间:2020-03-31 10:21:39

标签: c# entity-framework linq

在我的数据库结构中,每个EmployeeId可以具有多个BusinessId

在我的第一个查询中,我根据员工的EmployeeId获取员工的BusinessId。

List<int> businessId = EMPDB.BusinessEmployees.where(a =>  a.EmployeeId == 5678 && a.Active == true).Select(S => s.BusinessId).ToList();

在上述BusinessId中,我想过滤并仅获取那些不合规的BusinessId,即BusinessCompliance表中存在BusinessId。

List<int> complianceBusinessIds = EMPDB.BusinessCompliances.where( m=> businessId.Contains(m.BusinessId)).ToList();-这引发错误,我无法实现

1 个答案:

答案 0 :(得分:1)

您尝试加入吗?

        from be in EMPDB.BusinessEmployees
        join bc in EMPDB.BusinessCompliances on be.BusinessId equals bc.BusinessId
        where be.EmployeeID == 5678
        select bc;

这应该是回答此类问题的更好方法