私は次のモデルを持っています:
ワークフロー構成にはブランドがあり、タイプもあります。ワークフロー構成には、承認者のコレクションがあります。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))));