2010-09-29 49 views
2

我正在使用RiaServices使用EntityQuery填充網格。RiaServices和entityQuery.IncludeTotalCount過濾時的智能分頁問題

由於我的數據庫有數百萬行,我只想查詢當前頁面,但也爲了達到分頁目的的總行數。

例:100行總

entityQuery.Skip(0).Take(10); //for the first page 
entityQuery.IncludeTotalCount = true; 

這使我10行,和loadOperation.TotalEntityCount = 100。完善。

但是想象一下:

例:100行總

entityQuery.Where(p => Id >= 1 && p.Id <= 50).Skip(0).Take(10); //with filter now 
entityQuery.IncludeTotalCount = true; 

這使我10行,loadOperation.TotalEntityCount = 100

這裏是(我需要50元!)問題:對於分頁目的,我需要滿足我的過濾器的實體總數,而不是全部。

是否可以更改「IncludeTotalCount」的查詢或者我應該忘記TotalEntityCount並查詢服務器兩次?

乾杯,

安德烈·卡盧奇

回答

1

RIA Services處理由剝離跳躍總數的請求/採取尋呼指示(如你所期望的),將通過非頁面查詢到受保護的虛擬DomainService.Count方法。我建議覆蓋此方法,設置一個斷點,以便您可以驗證正確的計數查詢傳遞給您的服務。如果您使用EF DomainService,則Count的基本實現將簡單地執行query.Count()。所以事情應該像你期望的那樣行事 - 我不確定他們爲什麼不這樣做。你使用的是什麼類型的DomainService?

+0

哦,該死的,我很久以前就推翻了這個方法,完全忘記了它的存在......我在那裏放了一個斷點,並且發現了錯誤。韓國社交協會。 – andrecarlucci 2010-09-30 18:08:55

+0

由於某種原因,我一直得到-1。我如何在服務器上完成這項工作? – Jordan 2011-06-14 18:28:11