簡體   English   中英

Linq查詢,其中相關實體包含數組中的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM