您需要將truncatetime應用於兩者以獲得您正在查找的結果。
x => EntityFunctions.TruncateTime (x.FromTime) == EntityFunctions.TruncateTime(assignmentDate)
當我嘗試LINQ轉換assignDate到DateTimeOffset。即使在截斷時間之後,它仍然失敗,因爲日期有不同的偏移量。
,這將產生一個SQL類似下面
((convert (datetimeoffset, convert(varchar(255), [Extent1].[FromTime], 102) + ' 00:00:00 ' + Right(convert(varchar(255), [Extent1].[FromTime], 121), 6) , 102)) = CAST(convert (datetime2, convert(varchar(255), @p__linq__0, 102) , 102) AS datetimeoffset))
OR ((convert (datetimeoffset, convert(varchar(255), [Extent1].[FromTime], 102) + '' 00:00:00 '' + Right(convert(varchar(255), [Extent1].[FromTime], 121), 6) , 102) IS NULL)
AND (convert (datetime2, convert(varchar(255), @p__linq__0, 102) , 102) IS NULL))
請告訴我們你已經嘗試了什麼? –
我無法粘貼整個查詢,但這是where實體類entity.DbFunctions.TruncateTime(x.FromTime)==(assignmentDate)' assignmentDate是DateTime搜索字段x.FromTime是DB DateTimeOffset字段 –
您可以嘗試將assignDate轉換爲datetimeoffset範圍。這可能不是正確的解決方案。但一直到你找到正確的解決方案。 – Vijay