与Linq的明确日期

我有一个名为Billings的实体,其属性为DateTime。 我需要独特地找到日期,以便我可以浏览它们并做一些事情。 我试过了:

var DistinctYearMonthsDays = (from t in db.Billings where t.DateTime.HasValue select t.DateTime.Value.Date).Distinct(); foreach (var day in DistinctYearMonthsDays) 

但我得到了(在foreach ):

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

搜索后我也尝试了以下但没有成功:

 IEnumerable DistinctYearMonthsDays = db.Billings .Select(p => new { p.DateTime.Value.Date.Year, p.DateTime.Value.Date.Month, p.DateTime.Value.Date.Day }).Distinct() .ToList() .Select(x => new DateTime(x.Year,x.Month,x.Day)); 

任何帮助将非常感谢。

您可以使用内置的EntityFunctions。 您的查询将变为:

 var DistinctYearMonthsDays = (from t in db.Billings where t.DateTime.HasValue select EntityFunctions.TruncateTime(t.DateTime)).Distinct(); 

有关EntityFunctions的更多信息,请查看MSDN 。