Вопрос

Документация показывает только о том, как привязать к iEnumerable (который использует LINQ на страницу и сортировать) ... но мне нужно идти против SPROC, потому что выражая запрос, на котором я работаю, с LINQ доказывается немного медленно.

Может ли кто-нибудь предоставить любые руководящие принципы или указатели на то, что лучший способ сделать это?

Это было полезно?

Решение

Вам нужно использовать Пользовательские обязательства. Отказ Связанный пример показывает, как получить текущую страницу.

Другие советы

Вы говорите о том, как связать Teleerik Grid к набору результатов, излучаемую хранимой процедурой, или как реализовать пейджинг в сохраненной процедуре? Из вашего вопроса не ясно.

Следующая хранимая процедура T-SQL является очень Эффективное внедрение пейджинга. Оптимизатор SQL может найти первый идентификатор очень быстро. Объедините это с использованием RowCount, и у вас есть подход, который является как эффективным процессором, так и для чтения. Для таблицы с большим количеством строк, он, безусловно, превосходит любой подход, который я видел, используя временную таблицу или таблицу переменной.

CREATE  PROCEDURE dbo.PagingTest
(
    @PageNumber int,
    @PageSize int
)
AS

DECLARE @FirstId int, @FirstRow int

SET @FirstRow = ( (@PageNumber - 1) * @PageSize ) + 1
SET ROWCOUNT @FirstRow

-- Add check here to ensure that @FirstRow is not
-- greater than the number of rows in the table.

SELECT   @FirstId = [Id]
FROM     dbo.TestTable
ORDER BY [Id]

SET ROWCOUNT @PageSize

SELECT   *
FROM     dbo.TestTable
WHERE    [Id] >= @FirstId
ORDER BY [Id]

SET ROWCOUNT 0
GO 

Roadwarrior дал вам отличный пример пейджинга SPROC, а Корчев указал вам на таможенные обязательства.

На самом деле, где приходят данные, не относятся к неактуальной, так как вы получаете его в форме IENumerable, поэтому просто получите письменный код доступа к данным и получать данные в списке после этого, после этого настраиваемого привязки должно быть легко.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top