我对C#中的LINQ很新。如何使用查询语法重写以下内容?
var jobs =
context.Job
.Include(j => j.PlannedJobStopDetails
.Select(jsd => jsd.PlannedTravelStop)
)
.Where(
j => j.DateUpdated >= dateFrom && j.DateUpdated <= dateTo &&
j.PlannedJobStopDetails.Any(
jsd => jsd.DateUpdated >= dateFrom && jsd.DateUpdated <= dateTo
&& jsd.PlannedTravelStop.PlannedTravelStopStatus == status
)
);
我正在使用Entity Framework,我正在尝试在LINQPad中运行查询
答案 0 :(得分:1)
将语言设置为C#语句,然后使用jobs.Dump();得到结果?
context.
添加了其他信息
您在LinqPad中编写的所有代码都将包含在名为UserQuery的类中。此外,您选择的连接中可用的所有表/视图都将在此生成的UserQuery类中可用。
实际上并不需要使用var context = this;
。但是因为您使用了来自实际c#应用程序的复制粘贴,所以您可以使用以下技巧来运行粘贴的查询。
在linqpad中查询之前添加以下代码:
context
您的查询的替代方法是将LinqPad中的语言选项返回到 C#表达式,然后只编写查询,而不是.Dump();
和Job
.Include(
j => j.PlannedJobStopDetails.Select(jsd => jsd.PlannedTravelStop)
)
.Where(
j => j.DateUpdated >= dateFrom && j.DateUpdated <= dateTo &&
j.PlannedJobStopDetails.Any(
jsd => jsd.DateUpdated >= dateFrom && jsd.DateUpdated <= dateTo
&& jsd.PlannedTravelStop.PlannedTravelStopStatus == status
)
)
。像这样......
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files