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 аргументов
Из того, что я прочитал, я уверен, что первый способ, которым я это сделал, должен работать. Я попытался изменить спуск на восхождение только для того, чтобы убедиться, что он что-то делает, но он остается прежним.
Я был бы признателен, если бы кто-нибудь мог взглянуть на запрос и посмотреть, не делаю ли я что-то неправильно. Спасибо:)
Ответы
Ответ 1
Вам нужно выбрать свойство для сортировки и передать его как выражение лямбда OrderByDescending
как:
.OrderByDescending(x => x.Delivery.SubmissionDate);
Действительно, хотя первая версия вашего оператора LINQ должна работать. Действительно ли t.Delivery.SubmissionDate
заполнены действительными датами?
Ответ 2
Я думаю, что это первое не удалось, потому что вы заказываете значение, которое равно null. Если Delivery является связанной с внешним ключом таблицей, вы должны сначала включить эту таблицу, пример ниже:
var itemList = from t in ctn.Items.Include(x=>x.Delivery)
where !t.Items && t.DeliverySelection
orderby t.Delivery.SubmissionDate descending
select t;
Ответ 3
Я думаю, что второй должен быть
var itemList = (from t in ctn.Items
where !t.Items && t.DeliverySelection
select t).OrderByDescending(c => c.Delivery.SubmissionDate);