LINQPad で次の LINQ を入力し、dbcontext を使用してデータベース (SQL Server 2005) への接続を使用しました。
from j in Jobs
where j.dValuationDate.HasValue && j.dValuationDate.Value > EntityFunctions.AddDays(DateTime.Now, -7).Value &&
j.dValuationDate.Value < EntityFunctions.AddHours(DateTime.Now, -1).Value &&
j.bXMLServiceProviderID.HasValue && j.bXMLServiceProviderID.Value == 1 &&
!ValuationDelays.Any(x => x.iJobID == j.iJobID && x.iStatusID == 5)
select j.iJobID
Jobs と ValuationDelays は、iJobId 列でリンクされたデータベース内のテーブルです。
LINQPad によって生成される SQL は次のとおりです。
SELECT
[Extent1].[iDelayID] AS [iDelayID],
[Extent1].[iJobID] AS [iJobID],
[Extent1].[sReasonforDelay] AS [sReasonforDelay],
[Extent1].[dDateTime] AS [dDateTime],
[Extent1].[iStaffID] AS [iStaffID],
[Extent1].[iStatusID] AS [iStatusID],
[Extent1].[dSentDate] AS [dSentDate],
[Extent1].[yValExDelayReasonID] AS [yValExDelayReasonID],
[Extent1].[dDelayedUntilDate] AS [dDelayedUntilDate],
[Extent1].[dValuationDate] AS [dValuationDate],
[Extent1].[valexActionUpdateId] AS [valexActionUpdateId],
[Extent1].[valexAppointmentReasonId] AS [valexAppointmentReasonId]
FROM [dbo].[ValuationDelays] AS [Extent1]
where句がないことに注意してください。LINQPad がそのようなクエリを生成する理由がわかりません。私は何を間違っていますか?
VS 2010 でデバッグすると、クエリは正常に実行され、C# コードで期待される結果が返されます。