Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq查询,其中相关实体包含来自数组的值_C#_Linq - Fatal编程技术网

C# Linq查询,其中相关实体包含来自数组的值

C# Linq查询,其中相关实体包含来自数组的值,c#,linq,C#,Linq,我有一个叫做JobReport的模型,它看起来像这样(简化) 我尝试过下面这样的方法,但没有效果,因为它试图在我实际需要底层工作时给我一个工作顺序列表 问题似乎是因为我正在调用Select var jobsDB = db.Jobs.Include(x=>x.WorkOrders).ToList(); var jobs = (from p in jobsDB select new JobReport() { JobID =

我有一个叫做JobReport的模型,它看起来像这样(简化)

我尝试过下面这样的方法,但没有效果,因为它试图在我实际需要底层工作时给我一个工作顺序列表

问题似乎是因为我正在调用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)));
我通常处理这些问题的方法是,我查看结果必须是什么(一份工作列表)-这意味着我们需要将
放在第一位,并且我们必须寻找包含工作的条件。这有点像构造SQL查询——事实上,如果您愿意,您可以将SQL like用于大多数LINQ任务。

这将起作用:

jobs = jobs
    .Where(x => x.WorkOrders.Any(y => trades.Contains(y.Trade)));
我通常处理这些问题的方法是,我查看结果必须是什么(一份工作列表)-这意味着我们需要将
放在第一位,并且我们必须寻找包含工作的条件。这有点像构造SQL查询——事实上,如果您愿意,您可以将SQL like用于大多数LINQ任务。

这将起作用:

jobs = jobs
    .Where(x => x.WorkOrders.Any(y => trades.Contains(y.Trade)));
我通常处理这些问题的方法是,我查看结果必须是什么(一份工作列表)-这意味着我们需要将
放在第一位,并且我们必须寻找包含工作的条件。这有点像构造SQL查询——事实上,如果您愿意,您可以将SQL like用于大多数LINQ任务。

这将起作用:

jobs = jobs
    .Where(x => x.WorkOrders.Any(y => trades.Contains(y.Trade)));
我通常处理这些问题的方法是,我查看结果必须是什么(一份工作列表)-这意味着我们需要将
放在第一位,并且我们必须寻找包含工作的条件。这有点像构造一个SQL查询——事实上,如果您愿意,您可以对大多数LINQ任务使用类似SQL的方法