Jestem pewien, że będzie to stosunkowo proste.
Mam zapytanie LINQ, które chcę zamówić według ostatnio utworzonej daty.
Zobacz:
var itemList = from t in ctn.Items
where !t.Items && t.DeliverySelection
orderby t.Delivery.SubmissionDate descending
select t;
Próbowałem również:
var itemList = (from t in ctn.Items
where !t.Items && t.DeliverySelection
select t).OrderByDescending();
ale to daje błąd :
Brak przeciążenia dla metody 'OrderByDescending' przyjmuje 0 argumentów
Z tego, co przeczytałem, jestem dość pewny, że pierwszy sposób, w jaki to zrobiłem, powinien zadziałać. I've próbował zmienić descending na ascending tylko po to, aby zobaczyć, czy to coś robi, ale pozostaje taki sam.
Byłbym wdzięczny, gdyby ktoś mógł rzucić okiem na zapytanie i sprawdzić, czy robię coś źle. Dzięki :)
Musisz wybrać Właściwość do sortowania według i przekazać ją jako wyrażenie lambda do OrderByDescending
.
jak:
.OrderByDescending(x => x.Delivery.SubmissionDate);
Naprawdę, chociaż pierwsza wersja twojego oświadczenia LINQ powinna działać. Czy t.Delivery.SubmissionDate
jest rzeczywiście wypełniony ważnymi datami?
Myślę, że to pierwsze nie powiodło się, ponieważ zamawiasz wartość, która jest null. Jeśli Delivery jest powiązana z kluczem obcym tabela, powinieneś najpierw dołączyć tę tabelę, przykład poniżej:
var itemList = from t in ctn.Items.Include(x=>x.Delivery)
where !t.Items && t.DeliverySelection
orderby t.Delivery.SubmissionDate descending
select t;