我正在嘗試使用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))