3

私は次の3つのクラスを持っています。

ワークフロー構成には、1 つのブランドと 1 つのワークフロー タイプがあります。

既存のワークフロー構成のすべてのブランドを取得する linq または EF の 1 つのメソッドと、存在しないワークフロー構成のすべてのブランドを取得する別のメソッドが必要です。

どこから始めればいいのかわからないので迷っています。

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

ワークフロー構成

ブランドID、ワークフロータイプID

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

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

List<string> GetBrandsForExistingWorkflowType(string worfklowtype)

このメソッドに type1 を渡すと、Audi が返されるはずです。

List<string> GetBrandsForNonExistingWorkflowType(string workflowType)

このメソッドに type1 を渡すと、返されるはずです。フォルクスワーゲンとメルセデスは、タイプ 1 の場合、これら 2 つのブランドは関係がないためです。

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 に答える