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))



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因