2013-10-25 27 views
1

如何在實體框架中選擇與分頁不同? 我嘗試下面的代碼如何在實體框架中選擇與分頁不同?

var ll = _ctx.Cwzz_AccVouchMain.Select(v => v.Ddate).Distinct(); 
     var l = ll.Skip(start).Take(limit).ToList(); 

但錯誤: 必須調用的OrderBy方法跳過

但我嘗試

var ll = _ctx.Cwzz_AccVouchMain.Select(v => v.Ddate).Distinct(); 
     var l = ll.OrderBy(v => v.Year).ThenBy(v => v.Month).ThenBy(v => v.Date).Skip(start).Take(limit).ToList(); 

錯誤 ystem.NotSupportedException前:LINQ到實體不支承實的類型「日期」只支持初始結算,實體會員,實體導入屬性。

怎麼辦?

回答

1

試試這個:

var ll = _ctx.Cwzz_AccVouchMain.Select(v => v.Ddate).Distinct(); 
var l = ll.OrderBy(v => v).Skip(start).Take(limit).ToList(); 

當您嘗試通過年份,月份和日期排序,查詢還沒有執行,而當.ToList()觸發它,它試圖在發送前建立適當的SQL查詢它到你的數據庫服務器。然而,你的數據庫不知道Ddate.Year,Ddate.MonthDdate.Date,因爲在數據庫方面Ddate是一個簡單的日期,他不明白你的對象的屬性,如在C#中使用DateTime

如果您想按月訂購(例如),則必須在此之前觸發您的查詢。

+0

謝謝,很好的回答 – qizweb