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 аргументов

Из того, что я читал, я уверен, что первый способ, которым я это сделал, должен работать. Я попытался изменить спуск на восхождение только для того, чтобы убедиться, что он что-то делает, но он остается прежним.

Я был бы признателен, если бы кто-нибудь мог взглянуть на запрос и посмотреть, не делаю ли я что-то неправильно. Благодаря 🙂

Вам нужно выбрать свойство для сортировки и передать его как выражение lambda для OrderByDescending

как:

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

Действительно, хотя первая версия вашего оператора LINQ должна работать. Является ли t.Delivery.SubmissionDate фактически заполненными действительными датами?

Я думаю, что это первое не удалось, потому что вы заказываете значение, которое равно 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; 

Я думаю, что второй должен быть

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

Просто чтобы показать его в другом формате, который я предпочитаю использовать по какой-либо причине: первый способ возвращает ваш itemList как System.Linq.IOrderedQueryable

 using(var context = new ItemEntities()) { var itemList = context.Items.Where(x => !x.Items && x.DeliverySelection) .OrderByDescending(x => x.Delivery.SubmissionDate); } 

Этот подход прекрасен, но если вы хотите его прямо в Object List:

 var itemList = context.Items.Where(x => !x.Items && x.DeliverySelection) .OrderByDescending(x => x.Delivery.SubmissionDate).ToList(); 

Все, что вам нужно сделать, это добавить вызов .ToList () в конец запроса.

Что-то примечание, от верхней части головы, я не могу вспомнить, допустимо ли выражение! (Не) int в вызове Where ().

  • Спящий режим с нулями
  • MySQL - значения ORDER BY внутри IN ()
  • Сравнение C # и OrderBy
  • Монгоский порядок по длине массива
  • Возврат результатов запроса в предопределенный порядок
  • Заказ MySQL перед Группой
  • MySQL Orderby число, Nulls last
  • Entity Framework Include OrderBy random генерирует повторяющиеся данные
  • MySQL: Сортировка значений GROUP_CONCAT
  • Сортировка столбца строки, содержащего числа в SQL?
  • Лучший способ сохранить упорядоченный список в базе данных, сохраняя порядок
  • Давайте будем гением компьютера.