我在LINQPad中鍵入以下LINQ,並使用dbcontext連接到我的數據庫(SQL Server 2005)。LINQPad - 無法理解生成的查詢
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
作業和評估延遲是由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會產生這樣的查詢。我究竟做錯了什麼?
查詢,當我在2010年VS
select語句(在SQL中)全部搞砸了。它應該只選擇'iJobID' ... –
opun進一步檢查,這兩個語句根本不匹配。選擇是錯誤的,並且'From'不是同一張桌子!嘗試再次運行您的Linq查詢,並確保它更新SQL結果 –