2012-03-23 9 views
0

Ich habe eine Auswahl von einer großen Menge von Daten und ich würde gerne ein Paging verwenden und nur k Elemente, beginnend mit dem o'th Element im Set, um meine Paging zu unterstützen. Ich mag die Idee nicht, den gesamten Datensatz mit linq zu laden und dann nur eine Teilmenge mit der GetRange-Methode zu erhalten, weil die Anzahl der Elemente sehr groß sein kann. Wenn ich zum Beispiel 6 000 000 Zeilen in einer Tabelle habe und sie anzeigen möchte, mit einer Auslagerungsgröße von 10 und wir die 5. Seite betrachten, möchte ich eine SQL Server-Abfrage erzeugen, die Linq verwendet wird nur 10 Elemente meiner großen Tabelle von 6 000 000 Zeilen auswählen, weil auf diese Weise meine Anwendung effizienter wird.Linq wie nur eine kleine Teilmenge einer großen Ergebnismenge auszuwählen?

Kennt jemand eine Unterstützung für das Blättern in Linq?

Vielen Dank im Voraus,

Lajos Árpád.

+0

Haben Sie Take() & Skip() versucht? – Jon

+0

Mögliche Duplikate mit http://stackoverflow.com/questions/2380413/paging-with-linq-for-objects –

+0

Jon, ich habe sie nicht getestet, weil ich nicht wusste, dass sie existierten und meine Google-Suchanfragen nicht waren erfolgreich über dieses Problem. –

Antwort

1

Verwenden Skip und Take.

collection.Skip(pageIndex * pageSize).Take(pageSize); 
+0

Schön, danke. Ich habe deine Idee getestet und es funktioniert. –

0

können Sie verwenden, um die Skip und Take Methoden

query = context.Table.Skip(number).Take(number); 
0

Sie untern und überspringen können.

var page = query.Skip(1000).Take(10); 
Verwandte Themen