Question

La documentation montre que la façon de se lier à un IEnumerable (qui utilise LINQ à la page et tri) ... mais je dois aller à l'encontre d'un sproc parce exprimant la requête que je travaille avec LINQ se révèle être un peu lent.

Quelqu'un peut-il fournir des lignes directrices ou des conseils sur ce qui est la meilleure façon de le faire?

Était-ce utile?

La solution

Vous devez utiliser liaison personnalisée. L'exemple lié montre comment obtenir la page en cours.

Autres conseils

Vous parlez de la façon de lier la grille Telerik à un jeu de résultats émis par une procédure stockée, ou comment implémenter la pagination dans une procédure stockée? On ne sait pas de votre question.

La procédure stockée T-SQL suivante est un très mise en œuvre efficace de la pagination. L'Optimiseur SQL peut trouver le premier ID très rapide. Combinez cela avec l'utilisation de ROWCOUNT, et vous avez une approche qui est à la fois efficace et CPU en lecture efficace. Pour une table avec un grand nombre de lignes, il vaut certainement une approche que je l'ai vu à l'aide d'une table temporaire ou variable tableau.

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 vous a donné un excellent exemple d'un sproc d'appel, et Korchev vous a pointé vers liaison personnalisée.

En réalité, où les données proviennent de est sans importance tant que vous obtenez sous la forme d'un IEnumerable, donc juste obtenir votre code d'accès aux données écrites et obtenir les données sur dans une liste après que la coutume obligatoire devrait être facile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top