比较where子句中的日期部分

时间:2011-11-21 11:57:12

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

当试图将where语句用于仅使用此代码比较datetime字段的日期部分时,

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

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

我得到的错误是

  

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

1 个答案:

答案 0 :(得分:4)

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

以下是MSDN说明:http://msdn.microsoft.com/en-us/library/dd395596.aspx