Mam zapytanie LINQ:
var list = from t in ctn.Items
where t.DeliverySelection == true && t.Delivery.SentForDelivery == null
orderby t.Delivery.SubmissionDate
select t;
Jak mogę zmodyfikować to zapytanie, aby wybrać tylko pięć wyników z bazy danych?
Odpowiedzi:
źródło
take
tylko pierwsze 5 wierszy z bazy danych?Rozwiązanie:
źródło
Można to również osiągnąć stosując podejście Linq oparte na lambda;
źródło
[Oferując nieco bardziej opisową odpowiedź niż odpowiedź udzielona przez @Ajni .]
Można to również osiągnąć za pomocą płynnej składni LINQ :
Należy zauważyć, że każda z tych metod (
Where
,OrderBy
,Take
), który pojawia się w tej instrukcji LINQ przyjmuje wyrażenie lambda jako argument. Należy również pamiętać, że dokumentacjaEnumerable.Take
zaczyna się od:źródło
Additional information
Czasami konieczne jest powiązanie modelu z modelami widoku i podanie błędu konwersji typu . W tej sytuacji powinieneś użyć
ToList()
metody.źródło
Samo myślenie, że możesz nie znać sekwencji Od-> Gdzie-> Wybierz, jak w skrypcie sql, to jest jak Select-> From-> Where.
Ale możesz nie wiedzieć, że wewnątrz Sql Engine jest on również analizowany w sekwencji „ From-> Where-> Select ”. Aby to sprawdzić, możesz wypróbować prosty skrypt
i to nie działa, powodem jest silnik będzie analizować Gdzie przed Select , więc nie będzie wiedział, alias I w którym . Aby to zadziałało, możesz spróbować
źródło