У меня возникают трудности с сортировкой результатов по дате. Есть ли особый метод?
Потому что я делаю это прямо сейчас:
var db = new DB();
var articles = db.Articles;
var orderedArticles = articles.OrderBy(a => a.Date);
return View(orderedArticles.ToList());
Где Date - поле даты и времени.
И нет никакого эффекта для OrderBy (..) или OrderByDescending (..)
Так что мне удалось проверить, что происходит.
Каждый раз, когда я добавляю новую статью, я просто использую дату, а не время, поэтому
если у меня есть две статьи для одного дня, например:
с:
var orderedArticles = db.Articles.OrderByDescending(a => a.Date).ToList();
Я бы получил
Id Title Date
10 First Added Article 16/09/2009 00:00
11 Second Added Article 16/09/2009 00:00
15 Old Article Added Later 15/09/2009 00:00
Итак, вы можете видеть, что происходит фильтрация по дате, но дело в том, что когда у меня та же дата, сортировка теряет фокус.
Итак, я сделал так: упорядочить в двух разных контекстах, таких как первый порядок по идентификатору и более поздний порядок по дате:
var orderedArticles = db.Articles.OrderByDescending(a => a.Id).OrderByDescending(a => a.Date).ToList();
Итак, после этого у меня есть следующее:
Id Title Date
11 Second Added Article 16/09/2009 00:00
10 First Added Article 16/09/2009 00:00
15 Old Article Added Later 15/09/2009 00:00
Я действительно не знаю, является ли это правильным способом сделать это, потому что основная проблема заключается в том, что когда вы отправляете поле даты, например 16/09/2009, оно устанавливает время в 00:00, и это проблема на эта ситуация.