2011-08-15 122 views
2

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

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

,但我得到了以下错误:

The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.

为什么和如何解决?

回答

5
这个

什么:

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

您不能导致命中如果Entity Framework有没有办法将其转换成有效的SQL数据库LINQ查询使用扩展功能。

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

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