我正在使用LINQ to SQL來搜索相當大的數據庫,並且不確定使用DataPager執行分頁的最佳方法。我知道Skip()和Take()方法,並讓這些方法正常工作。但是,我無法使用數據填充器的結果數,因爲它們將始終是Take()方法中確定的頁面大小。LINQ to SQL和DataPager
例如:
var result = (from c in db.Customers
where c.FirstName == "JimBob"
select c).Skip(0).Take(10);
這個查詢將始終返回10分或更少的結果,即使有1000個JimBobs。因此,DataPager會一直認爲只有一個頁面,並且用戶無法瀏覽整個結果集。我看過一篇在線文章,其中作者只是寫了另一個查詢來獲得總數並將其調用。
喜歡的東西:
int resultCount = (from c in db.Customers
where c.FirstName == "JimBob"
select c).Count();
,並用於DataPager的那個值。但我真的寧願不必將每個查詢複製並粘貼到單獨的調用中,因爲我想分頁顯示結果的原因很明顯。是否有更簡單的方法可以在多個查詢中重用?
謝謝。
感謝。自發布以來,我實際上已經擺脫了這種方式,因爲我無法獲得網站所需的性能。上面的代碼是否只打一次數據庫? – 2009-09-09 17:16:12