我在按日期对结果进行排序时遇到一些困难。有什么特别的方法吗?
因为我现在正在这样做:
var db = new DB();
var articles = db.Articles;
var orderedArticles = articles.OrderBy(a => a.Date);
return View(orderedArticles.ToList());
其中 Date 是日期时间字段。
并且没有效果订购依据(..) or 按降序排序(..)
所以我设法检查发生了什么。
每次我添加新文章时,我只是使用日期而不是时间,所以
例如,如果我在同一天有两篇文章:
和:
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
所以你可以看到这是按日期过滤,但问题是当我有相同的日期时排序会失去焦点。
所以我所做的是,orderBy 两个不同的上下文,例如第一个按 Id 排序,后来按日期排序:
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,这在这种情况下是一个问题。