LINQ Orderby Descending Query (Упорядкування за спадним запитом)

Я впевнений, що він буде відносно простим.

У мене є LINQ запит, який я хочу впорядкувати за останньою створеною датою.

Дивіться:

        var itemList = from t in ctn.Items
                        where !t.Items && t.DeliverySelection
                        orderby t.Delivery.SubmissionDate descending
                        select t;

Я також намагався:

       var itemList = (from t in ctn.Items
                        where !t.Items && t.DeliverySelection
                        select t).OrderByDescending();

але це дає помилку:

Немає перевантаження для методу 'OrderByDescending' отримує 0 аргументів

З того, що я прочитав, я впевнений, що перший спосіб, який я зробив, повинен працювати. Я спробував змінити спадання на зростання, просто щоб побачити, чи це щось робить, але все залишається незмінним.

Я був би вдячний, якби хтось міг поглянути на запит і подивитися, чи не роблю я щось не так. Дякую :)

Рішення

Вам потрібно вибрати Властивість для сортування і передати її у вигляді лямбда-виразу в [OrderByDescending][1].

наприклад:

.OrderByDescending(x => x.Delivery.SubmissionDate);

Дійсно, хоча перший варіант вашого оператора LINQ повинен працювати. Чи t.Delivery.SubmissionDate дійсно заповнений дійсними датами?

[1]: https://msdn.microsoft.com/en-us/library/bb534855(v=vs.100).aspx "Документація MSDN";

Коментарі (1)

Я думаю, що спочатку це не вдалося, тому що ви замовляєте значення, яке є нульовим. Якщо Delivery є таблицею, пов'язаною з зовнішнім ключем, то спочатку слід включити цю таблицю, як показано в прикладі нижче:

var itemList = from t in ctn.Items.Include(x=>x.Delivery)
                    where !t.Items && t.DeliverySelection
                    orderby t.Delivery.SubmissionDate descending
                    select t;
Коментарі (1)

Я думаю, що другим має бути

var itemList = (from t in ctn.Items
                where !t.Items && t.DeliverySelection
                select t).OrderByDescending(c => c.Delivery.SubmissionDate);
Коментарі (3)