C# 使用实体框架基于非相关实体列表查询基础对象

C# 使用实体框架基于非相关实体列表查询基础对象,c#,linq,entity-framework,entity-framework-4,entity-framework-4.1,C#,Linq,Entity Framework,Entity Framework 4,Entity Framework 4.1,我有以下型号: Workflow配置具有品牌和类型。 Workflowconfiguration具有批准者的集合。 审批人实体具有属性状态和用户名 在应用程序的另一部分中,我们有一个名为RequestBase的实体 此实体具有名为CurrentStatus的字符串属性 我需要使用linq或EF Lambda表达式进行查询,以返回状态与approvers实体上的用户名匹配的所有请求。 我知道这有点复杂,或者说真的很复杂,哈哈 这些是我的实体(简化) public class RequestBase

我有以下型号:

Workflow配置具有品牌和类型。 Workflowconfiguration具有批准者的集合。 审批人实体具有属性状态和用户名

在应用程序的另一部分中,我们有一个名为RequestBase的实体 此实体具有名为CurrentStatus的字符串属性

我需要使用linq或EF Lambda表达式进行查询,以返回状态与approvers实体上的用户名匹配的所有请求。 我知道这有点复杂,或者说真的很复杂,哈哈

这些是我的实体(简化)

public class RequestBase
    {
        public int RequestBaseId { get; set; }
        public string CurrentStatus { get; set; }
      }


 public class WorkflowConfiguration
    {
        public int WorkflowConfigurationId { get; set; }
        public WorkflowType WorkflowType { get; set; }
        public Brand Brand { get; set; }
        public virtual ICollection<Approver> Approvers { get; set; }

    }


public class Approver
    {
        public Approver()
        {

        }

        public Approver(string approverUserName)
        {
            Name = approverUserName;
        }

        public int Id { get; set; }
        public string Name { get; set; }
        public string StepName { get; set; }  -----||||>>>>>> Must match status?
        public int Order { get; set; }
    }
return _context.RequestBases.
                        .Where(a => a.CurrentStatus.Any(workflowconfiguration.Select(b=>b.Approvers.Select(c => c.StepName))));
_context.RequestBases
.Where(rb => _context.Workflowconfiguration
    .Any(wc => wc.Approvers
        .Any(a => a.StepName == rb.CurrentStatus)));