2013-11-27 22 views
2

我想在Ext.js網格中實現自定義分頁,我需要根據頁面大小獲取我的表和記錄的總記錄。我正在使用一個已編譯的查詢。獲取總記錄數和自定義沒有記錄在一個數據庫中點擊

但我只想給一個數據庫命中。

List<MyTable> .GetRecordsById(Int32 ID, Int32 start, Int32 limit) 
    { 
     return CompliedGetRecordsById_CustomPaging(_dbNavigation, ID, start, limit).ToList(); 
    } 

    /// <summary> 
    /// Complied query for retrieving manage tasks Custom Paging 
    /// </summary> 
    public static readonly Func<SomeEntities, Int32,Int32, Int32, IQueryable<MyTable>> CompliedGetTaskByProjectId_CustomPaging = 
     CompiledQuery.Compile<SomeEntities, Int32, Int32, Int32, IQueryable<MyTable>>((dbNavigation, ID, start, limit) => 
             dbNavigation.SiteTasksMappings.Include("TaskMaster") 
             .Where(x=> x.myTableID == ID && x.STMIsActive == 1).OrderBy(x=>x.STMID).Skip(start).Take(limit)); 

這隻只會根據參數給出記錄, 我想從這裏

回答

3

我猜你返回的總記錄數和自定義沒有記錄使用MS-SQL服務器?那麼這是不能做到的。你至少需要一個子選項來計數。但是這會導致你的匿名結果類型很醜陋。

我建議你爲這樣的表格寫一個視圖,它增加了一個總計數字段。請注意,MS SQL Server支持只針對一個表的視圖的寫入操作。如果你有更多的簡單的寫一些存儲過程,並將它們分配給視圖的實體模型。

+0

感謝您的回覆,我已經嘗試參考此答案(http://stackoverflow.com/questions/7767409/better-way-to-query-a-page-of-data-and-get-total -count-in-entity-framework-4-1),因爲我沒有SQL分析器,雖然我無法驗證它,但它只給出一個命中 – Rex

+1

@Rex好了,看看查詢優化器用查詢以及它的執行情況......無論如何,我的觀點是你應該在這種情況下使用views。如果您正在使用子選擇或分組,現在就由您決定。關鍵是數據庫(甚至你)可以在早期狀態下優化查詢。您的查詢在某些時候對數據庫來說總是新的 – sra

相關問題