LINQ to Entities用於減去2個日期

datetime entity-framework linq-to-entities

我正在嘗試使用LINQ with Entity Framework確定兩個日期之間的天數。它告訴我它不能識別System.TimeSpan類上的Subtract

這是我在LINQ查詢中的哪個部分。

where ((DateTime.Now.Subtract(vid.CreatedDate).TotalDays < maxAgeInDays))

這是我在VS.NET調試器中收到的錯誤

{“LINQ to Entities無法識別方法'System.TimeSpan Subtract(System.DateTime)'方法,並且此方法無法轉換為商店表達式。”}

我是做錯了還是有更好的方法來獲得實體框架中2個DateTimes之間的天數?

謝謝邁克爾

一般承認的答案

以下是我如何使用它

我定義了一個代表最早日期的日期時間變量

DateTime oldestDate = DateTime.Now.Subtract(new TimeSpan(maxAgeInDays, 0, 0, 0, 0));
...

然後我修改了LINQ查詢的where部分

where (vid.CreatedDate >= oldestDate )

像魅力一樣工作 - 感謝Micah讓我思考表達樹


熱門答案

在這種情況下,接受的答案更好,但作為參考,您可以使用EntityFunctions類來執行日期操作等。

where (vid.CreatedDate >= EntityFunctions.AddDays(DateTime.Now, -maxAgeInDay))


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因