C# Linq-基于另一个查询筛选结果集

C# Linq-基于另一个查询筛选结果集,c#,entity-framework,linq,C#,Entity Framework,Linq,在my DB结构中,每个EmployeeId可以有多个BusinessId 在我的第一个问题中,我得到了一个员工基于其EmployeeId的BusinessId List<int> businessId = EMPDB.BusinessEmployees.where(a => a.EmployeeId == 5678 && a.Active == true).Select(S => s.BusinessId).ToList(); 在上述Business

在my DB结构中,每个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

列出ComplianceBusinessID=EMPDB.BusinessCompliances.where m=>businessId.Containsm.businessId.ToList;——这是一个抛出错误,我无法实现这一点

您尝试加入了吗

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

回答这样的问题应该是更好的绩效方式

如果业务与业务合规性之间存在关系,员工与业务之间通过EmployeeBusiness存在关系,为什么您不能为员工选择业务,然后询问业务合规性是什么?事实上。。我甚至更困惑——您已经知道businessId,因为您将它作为第一个查询的输入;第一个查询只能返回相同业务ID 5678的重复列表,每个活动员工重复一次。员工和什么有什么关系?为什么你不只是做EMPDB.BusinessCompliances.wherebc=>bc.BusinessId==5678.ToList?我已经为员工ID选择了所有的BusinessId,我试图从中获得那些符合要求的BusinessId,即它们出现在BusinessCompliance表中。。这样,当用户登录InI时,我可以在报告中向用户显示所有这些BusinessId。我已为员工ID选择了所有BusinessId-您已为BusinessId选择了所有BusinessId。我在键入我的查询时真的很糟糕……我已更新了我的帖子