查询语法的C#方法语法

时间:2015-09-29 14:56:19

标签: c# linq

我对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中运行查询

1 个答案:

答案 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