Jak mam to zrobic
Select top 10 Foo from MyTable
w Linq na SQL?
linq-to-sql
Herb Caudill
źródło
źródło
Użyj metody Take :
W VB LINQ ma wyrażenie:
Z dokumentacji:
źródło
Użyj
Take(int n)
metody:źródło
OP faktycznie wspomniał także o przesunięciu, więc np. jeśli chcesz dostać przedmioty od 30 do 60, zrobiłbyś:
Do przesunięcia użyj metody „Pomiń”.
Do ograniczenia użyj metody „Weź”.
źródło
@Janei: mój pierwszy komentarz tutaj dotyczy twojej próbki;)
Myślę, że jeśli ci się tak podoba, chcesz wziąć 4, a następnie zastosować sortowanie na tych 4.
Różni się od sortowania całych tbl_News według idNews malejąco, a następnie biorąc 4
nie? wyniki mogą być inne.
źródło
Działa to dobrze w C #
źródło
Lubię to:
źródło
Użyłbyś metody Take (N).
źródło
To, czy operacja wykonania ma miejsce na kliencie, czy w bazie danych, zależy od tego, gdzie zastosujesz operatora. Jeśli zastosujesz je przed wyliczeniem zapytania (tj. Zanim użyjesz go w foreach lub skonwertujesz na kolekcję), wykonanie spowoduje wysłanie do bazy danych SQL operatora „top n”. Możesz to zobaczyć, jeśli uruchomisz profiler SQL. Jeśli zastosujesz ujęcie po wyliczeniu zapytania, stanie się ono na kliencie, ponieważ LINQ będzie musiał pobrać dane z bazy danych, aby je wyliczyć
źródło
Pobieranie danych z bazy danych bez sortowania jest tym samym, co pobieranie losowe
źródło
źródło
Musiałem użyć metody Take (n), a następnie przekształcić na listę, działał jak urok:
źródło
W ten sposób zadziałało dla mnie:
źródło
Do
limit 1
metod użyciaFirstOrDefault()
lubFirst()
.Przykład
var y = (from x in q select x).FirstOrDefault();
źródło