2012-07-17 87 views
5

我有一個名爲Billings的實體,具有DateTime屬性。我需要唯一地找到日期,以便我可以通過他們做一些事情。 我想:與Linq不同的日期

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

foreach (var day in DistinctYearMonthsDays) 

,但我得到(在foreach):

指定類型的成員 '日期' 不支持LINQ到實體。 僅支持初始值設定項,實體成員和實體導航屬性 。

搜索後,我也嘗試沒有成功如下:

IEnumerable<DateTime> 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)); 

任何幫助將是非常讚賞。

+0

你看過[這] [1]頁嗎? [1]:http://stackoverflow.com/questions/5289338/linq-query-distinct-date – 2012-07-17 14:44:41

回答

8

您可以使用內置的EntityFunctions。您的查詢就會變成:

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

更多關於EntityFunctions,檢查MSDN

+0

謝謝你的提示(和好)響應傑夫 – user1531996 2012-07-17 15:03:25

+0

非常感謝! – 2013-05-30 10:02:11