3

我有以下 3 节课。

工作流配置具有一个品牌和一种工作流类型。

我需要 linq 或 EF 中的一种方法,它可以让我获得现有工作流配置的所有品牌,而另一种方法可以让我获得所有品牌的非现有工作流配置。

我迷路了,因为我不知道从哪里开始。

public class Brand
    {
        public int BrandId { get; set; }
        public string Name { get; set; }
    }


  public class WorkflowType
    {
        public int WorkflowTypeId { get; set; }
        public string Name { 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; }

    }

Update1 以下是我的表格的外观和预期结果

品牌

  1. 奥迪

  2. 大众汽车

  3. 梅赛德斯

工作流类型

  1. 1型

  2. 类型 2

  3. 3型

工作流配置

品牌标识,工作流类型标识

1 ------------ 1

1 -------------2

List<string> GetBrandsForExistingWorkflowType(string worfklowtype)

如果我将 type1 传递给此方法,它应该返回:Audi 因为对于 type1,audi 存在于表中

List<string> GetBrandsForNonExistingWorkflowType(string workflowType)

如果我将 type1 传递给此方法,它应该返回。大众和梅赛德斯,因为对于 type1,这两个品牌不在关系中。

4

1 回答 1

4

我认为这就是你想要的:

List<string> GetBrandsForExistingWorkflowType(string worfklowtype)
{
    var result = db.WorkflowConfigurations
                 .Where(x => x.WorkflowType.Name == worfklowtype)
                 .Select(x => x.Brand);
    return result;
}

List<string> GetBrandsForNonExistingWorkflowType(string workflowType)
{
    var excluded = GetBrandsForExistingWorkflowType(string worfklowtype);
    var result = db.Brands.Except(excluded);
    return result;
}
于 2012-05-29T07:40:27.760 回答