Linq to sql:按日期时间desc排序,然后按时间顺序排列数据asc?

Gal*_*you 20 linq-to-sql

这是一个快速的.
在Linq to sql中,我需要按日期时间字段降序然后按相同日期时间归档的时间部分顺序排序,有意义吗?以下是所需结果的示例:

[序列] [日期(mm-dd-yyyy:hh-MM-ss)]
1 3-13-2008:10-10-02
2 3-13-2008:10-12- 60
3 3-12-2008:12-05-55


我试过了 :

return query.OrderByDescending(c=> c.Time).ThenBy(c=> c.Time.TimeOfDay);
Run Code Online (Sandbox Code Playgroud)


并尝试过:

query.OrderByDescending(c => c.Time).ThenBy(c => c.Time.Hour).ThenBy(c=> c.Time.Minute).ThenBy(c=> c.Time.Second);
Run Code Online (Sandbox Code Playgroud)


但似乎永远不会奏效.有什么建议?

Ric*_*der 53

使用DateTimeOfDay属性进行排序.

return query
   .OrderByDescending(c=> c.Time.Date)
   .ThenBy(c=> c.Time.TimeOfDay);
Run Code Online (Sandbox Code Playgroud)

  • 噢耶,再次同时回答 (3认同)

thm*_*shd 16

问题是"时间"包含日期和时间信息,因此已经完全排序.您必须先使用日期部分进行排序.

return query.OrderByDescending(c=> c.Time.Date).ThenBy(c=> c.Time.TimeOfDay);
Run Code Online (Sandbox Code Playgroud)

没测过​​:)


Nas*_*eer 5

我认为 first orderByDescending 按日期时间(日期+时间)对所有内容进行排序,因此只有当您有任何具有相同时间戳的记录时,以下 orderby 才会生效。

尝试这个

query.OrderByDescending(c=> c.Time.Date).ThenBy(c=> c.Time.TimeOfDay)
Run Code Online (Sandbox Code Playgroud)