[英]Linq Query where related entity contains value from array
我有一個名為JobReport的模型,看起來像這樣(簡化)
public class JobReport
{
public JobReport()
{
WorkOrders = new List<WorkOrder>();
}
public int JobID { get; set; }
public List<WorkOrder> WorkOrders{ get; set; }
}
public class WorkOrder
{
public WorkOrder()
{
Total = 0;
}
public string Trade { get; set; }
public int WorkOrderID { get; set; }
public decimal? Total { get; set; }
}
我想運行一個Linq查詢,該查詢使我所有具有WorkOrders的Job都具有傳遞數組中的交易。
var trades = new string[] { }
我嘗試了類似以下操作的方法,但當我實際上需要基礎工作時,它試圖為我提供工作單列表。
問題似乎是因為我正在致電Select
var jobsDB = db.Jobs.Include(x=>x.WorkOrders).ToList();
var jobs = (from p in jobsDB
select new JobReport()
{
JobID = p.JobID,
WorkOrders = p.WorkOrders.ToList()
}
jobs = jobs
.Select(x => x.WorkOrders
.Where(y => trades.Contains(y.Trade)));
這將起作用:
jobs = jobs
.Where(x => x.WorkOrders.Any(y => trades.Contains(y.Trade)));
我通常解決這些問題的方式是,我查看結果必須是什么(一份工作清單)-這意味着我們需要將“位置Where
放在第一位,並且我們必須尋找要包含一份工作的條件。 這有點像構造SQL查詢-實際上,如果願意,您可以對大多數LINQ任務使用類似SQL的查詢語法 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.