2010-05-10 130 views
1

我似乎無法找到這個問題的答案或如何完成我想要做的一個很好的例子。我確定它已發佈或解釋某處,但我無法找到所需的確切解決方案。尋呼使用活動記錄查找

我在Subsonic 3.0.0.4中使用ActiveRecord。當我這樣做

recordset = VehicleModel.Find(x => x.Model.StartsWith(SearchText)); 

我回來VehicleModel對象的IList的(或者更簡單地記錄),這是罰款,直到我返回太多記錄。我也不能訂購返回的記錄集(我的網格會做得很好,但如果我有太多記錄,我相信它會太慢)。由於Find是返回一個IList,所以我可以直接運行這個(我可能忽略了一些簡單的東西,所以請不要殺了我)。

我的問題是有人可以解釋如何找到像我上面的數據,對它進行排序並獲得頁面的大小爲n的數據頁面?

我是否在談論這個錯誤?我是否接近正確的軌道?

回答

0
int currentPage = x 
int pageSize = n 
recordset = VehicleModel.Find(x => x.Model.StartsWith(SearchText)).Skip(currentPage x PageSize).Take(PageSize); 

這是假設當前是從0開始
如果當前是從1開始,那麼它的Skip((currentPage - 1) x PageSize)

+0

當我在打字。後SearchText))我沒有得到跳過作爲一個選項,當我編譯我得到一個錯誤(錯誤'System.Collections.Generic.IList '不包含'跳過'的定義和沒有擴展方法'Skip'接受類型'System.Collections.Generic.IList '的第一個參數可以找到(你是否缺少使用指令或程序集引用?)。 正如我在最初的問題查找正在返回一個IList,也許我使用的ActiveRecord.tt文件比較老,或者我錯過了其他的東西? – 2010-05-11 17:12:16

+0

我是個白癡。我錯過了我使用的System.Linq; 感謝您的幫助意識到我需要更多的睡眠和更少的咖啡 – 2010-05-11 17:48:50

+0

現在再次查看代碼,我相當確定您可以使用亞音速GetPaged方法。 – spaceman 2010-05-11 19:31:31