0

私は次のモデルを持っています:

ワークフロー構成にはブランドがあり、タイプもあります。ワークフロー構成には、承認者のコレクションがあります。Approvers エンティティには、Status プロパティとユーザー名があります。

アプリケーションの別の部分には、RequestBase というエンティティがあります。このエンティティには、CurrentStatus という文字列プロパティがあります。

承認者エンティティのユーザー名とステータスが一致するすべてのリクエストを返す linq または EF Lambda 式を使用してクエリを作成する必要があります。私はそれが少し複雑であること、または非常に複雑であることを知っています.

これらは私のエンティティです(簡略化)

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))));
4

1 に答える 1

1
_context.RequestBases
.Where(rb => _context.Workflowconfiguration
    .Any(wc => wc.Approvers
        .Any(a => a.StepName == rb.CurrentStatus)));
于 2012-06-05T10:03:01.190 に答える