Я впевнений, що він буде відносно простим.
У мене є 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";
Я думаю, що спочатку це не вдалося, тому що ви замовляєте значення, яке є нульовим. Якщо Delivery є таблицею, пов'язаною з зовнішнім ключем, то спочатку слід включити цю таблицю, як показано в прикладі нижче:
var itemList = from t in ctn.Items.Include(x=>x.Delivery)
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(c => c.Delivery.SubmissionDate);