C# Linq查询,其中相关实体包含来自数组的值
我有一个叫做JobReport的模型,它看起来像这样(简化) 我尝试过下面这样的方法,但没有效果,因为它试图在我实际需要底层工作时给我一个工作顺序列表 问题似乎是因为我正在调用SelectC# 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 =
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的方法