DateTime和LinqToEntities

时间:2011-08-15 10:26:39

标签: linq entity-framework linq-to-entities

我有DateTime字段,它存储日期+时间。我只需要使用日期部分,所以我尝试:

            query = query.Where(p => p.CreatedDateTime.Date == DateStart);

但是我收到以下错误:

  

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

为什么以及如何解决它?

2 个答案:

答案 0 :(得分:5)

怎么样:

query = query.Where(p => EntityFunctions.TruncateTime(p.CreatedDateTime) == DateStart);

答案 1 :(得分:1)

如果LINQ无法将此转换为有效的Entity Framework,则无法在导致数据库命中的SQL次查询中使用扩展程序功能。

可能有一个更紧凑的解决方案,但以下应该可以正常工作:

query = query.Where(p => 
    p.CreatedDateTime.Year == DateStart.Year &&
    p.CreatedDateTime.Month == DateStart.Month &&
    p.CreatedDateTime.Day == DateStart.Day);