asp.net-mvc - ASP.NET MVC - Model.OrderBy Date 没有效果

标签 asp.net-mvc linq model sorting sql-order-by

我在按日期对结果进行排序时遇到一些困难。有什么特别的方法吗? 因为我现在正在这样做:

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

所以你可以看到这是按日期过滤,但问题是当我有相同的日期时排序会失去焦点。 所以我所做的是,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,这是一个问题这种情况。

最佳答案

查看您提供的答案(仅供引用,应将其作为编辑移至问题中),您应该应用 ThenBy,而不是新的 OrderBy:

var articles = db.Articles.OrderByDescending(a => a.Date).ThenBy(a => a.Id).ToList();

关于asp.net-mvc - ASP.NET MVC - Model.OrderBy Date 没有效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1433088/

相关文章:

asp.net - 成员(member)提供者错误 mvc web.config

c# - typeof(_Default) 使用 Log4Net 时出错

c# - 如何过滤列的第一个字符在 EF 和 SQL Server 范围内的行?

c# - 如何在 asp.net 中按顺序从目录中获取文件?

java - 在 apache wicket 中获取对象模型的原因是什么?

qt - 更改模型时如何停止 "jumping"的 ListView

c# - 从数据库中获取数据并使用 View 模型将其传递给 View

html - Razor 绑定(bind)值到 Glyphicon 的 CSS 类

c# - LINQ 根据内部集合值选择

ruby-on-rails - Rails 中查询多对多关联