Frage

Die Dokumentation zeigt nur, wie zu binden an ein IEnumerable (die Linq zu Seite verwendet und Art) ... aber ich muss gegen einen sproc gehen, weil die Abfrage exprimierenden ich arbeite mit Linq erweist sich ein wenig zu sein, verlangsamen.

zur Verfügung stellen kann jemand irgendwelche Richtlinien oder Hinweise auf das, was ist der beste Weg, dies zu tun?

War es hilfreich?

Lösung

Sie müssen individuelle Bindung verwenden. Das verknüpften Beispiel zeigt, wie die aktuelle Seite erhalten.

Andere Tipps

Sprechen Sie darüber, wie das Telerik Gitter zu einer Ergebnismenge durch eine gespeicherte Prozedur emittieren zu binden, oder wie Paging in einer gespeicherten Prozedur implementieren? Es ist nicht von der Frage löschen.

Die folgende T-SQL gespeicherte Prozedur ist eine sehr effiziente Implementierung von Paging. Der SQL-Optimierers kann die erste ID findet sehr schnell. Kombinieren Sie dies mit dem Einsatz von ROWCOUNT, und Sie haben einen Ansatz, der sowohl CPU-effizient und schreib effizient ist. Für eine Tabelle mit einer großen Anzahl von Zeilen, schlägt es sicherlich jeden Ansatz, dass ich ein temporäre Tabelle oder Tabellenvariable gesehen werden.

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 

Road-Warrior hat hat dir ein großartiges Beispiel eines Paging sproc und korchev hat Sie auf individuelle darauf zu binden.

In der Realität, wo die Daten kommen, ist irrelevant, solange man es in Form eines IEnumerable bekommen, so erhält nur Ihre Daten Zugangscode geschrieben, und die Daten raus in eine Liste nach, dass benutzerdefinierte Bindung sollte einfach.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top