【问题标题】:Compare date part in where clause比较 where 子句中的日期部分
【发布时间】:2012-01-02 22:18:06
【问题描述】:

当尝试使用此代码将 where 语句设置为仅比较日期时间字段的日期部分时,

var list =  products.Where(x => ((DateTime)x.PurchaseDate).Date >= dt_SelectDate.Value.Date);

我使用了(DateTime) 转换,因为EF 无法识别.GetValueOrDefault(),并且PurchaseDate 字段可以为空。

我得到的错误是

LINQ to Entities 不支持指定的类型成员“日期”。仅支持初始化程序、实体成员和实体导航属性。

【问题讨论】:

  • so PurchaseDate 的类型是可为空的 DateTime?

标签: c# entity-framework-4 exception-handling linq-to-entities datetime-comparison


【解决方案1】:

我认为您需要使用 EntityFunctions.TruncateTime 方法来比较(仅)日期。

这是 MSDN 描述:http://msdn.microsoft.com/en-us/library/dd395596.aspx

【讨论】:

    猜你喜欢
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    相关资源
    最近更新 更多