Wie mache ich das
Select top 10 Foo from MyTable
in Linq zu SQL?
linq-to-sql
Herb Caudill
quelle
quelle
Verwenden Sie die Take-Methode :
In VB hat LINQ einen Take-Ausdruck:
Aus der Dokumentation:
quelle
Verwenden Sie die
Take(int n)
Methode:quelle
Das OP erwähnte tatsächlich auch den Versatz, also zum Beispiel. Wenn Sie die Artikel von 30 bis 60 erhalten möchten, würden Sie Folgendes tun:
Verwenden Sie die Methode "Überspringen" für den Versatz.
Verwenden Sie die "Take" -Methode als Limit.
quelle
@ Janei: Mein erster Kommentar hier ist über deine Probe;)
Ich denke, wenn dir das gefällt, möchtest du 4 nehmen und dann die Sortierung auf diese 4 anwenden.
Anders als das Sortieren ganzer tbl_News nach absteigenden idNews und anschließendem Nehmen von 4
Nein ? Ergebnisse können unterschiedlich sein.
quelle
Dies funktioniert gut in C #
quelle
Ich mag das:
quelle
Sie würden die Take (N) -Methode verwenden.
quelle
Ob der Take auf dem Client oder in der Datenbank stattfindet, hängt davon ab, wo Sie den Take-Operator anwenden. Wenn Sie es anwenden, bevor Sie die Abfrage aufzählen (dh bevor Sie es in einem foreach verwenden oder in eine Sammlung konvertieren), führt der Take dazu, dass der SQL-Operator "top n" an die Datenbank gesendet wird. Sie können dies sehen, wenn Sie den SQL-Profiler ausführen. Wenn Sie den Take nach dem Auflisten der Abfrage anwenden, geschieht dies auf dem Client, da LINQ die Daten aus der Datenbank abrufen musste, damit Sie sie auflisten können
quelle
Das Aufnehmen von Daten aus der Datenbank ohne Sortieren entspricht dem zufälligen Aufnehmen
quelle
quelle
Ich musste die Take (n) -Methode verwenden und dann in eine Liste umwandeln. Arbeitete wie ein Zauber:
quelle
So hat es bei mir funktioniert:
quelle
Zur
limit 1
Verwendung von MethodenFirstOrDefault()
oderFirst()
.Beispiel
var y = (from x in q select x).FirstOrDefault();
quelle