C# LinQ OrderBy和OrderBy降序在DateTime字段中不起作用
给定相同的列表,OrderBy和OrderByDescending on DateTime字段不会产生不同的输出: 列表1 列表2 “Fecha”字段是C# LinQ OrderBy和OrderBy降序在DateTime字段中不起作用,c#,linq,datetime,C#,Linq,Datetime,给定相同的列表,OrderBy和OrderByDescending on DateTime字段不会产生不同的输出: 列表1 列表2 “Fecha”字段是DateTime 名单如下: ID Movimiento_Anterior_ID Cliente_ID Fecha Monto Tipo_Movimiento Venta_ID 6 3 1020 2016-08-17 17:28
DateTime
名单如下:
ID Movimiento_Anterior_ID Cliente_ID Fecha Monto Tipo_Movimiento Venta_ID
6 3 1020 2016-08-17 17:28:05.323 3940.000 NULL NULL
5 3 1020 2016-08-17 16:16:26.927 3817.000 NULL NULL
4 3 1020 2016-08-17 16:16:01.023 3694.000 NULL NULL
3 -1 1020 2016-08-17 16:15:23.937 3571.000 NULL NULL
2 1 15 2016-08-17 16:14:19.000 2091.000 NULL NULL
1 -1 15 2016-08-17 16:13:52.510 369.000 NULL NULL
有趣的是,我不知道为什么,但是
DefaultIfEmpty()
导致EF查询提供程序从生成的SQL查询中删除(忽略)前面的order by表达式。奇怪的行为,但被人知道很好
要获得预期的排序,请删除
DefaultIfEmpty()
(我认为在这种查询中使用它没有任何好处),或者将OrderBy
/OrderByDescending
移动到DefaultIfEmpty
@JesseGood no之后,查看计数,它说4It似乎曾经有一个关于它的Microsoft Connect问题,但现在已经不可用了。我发现了更多的解释。@JesseGood好球!然后我要把这个标记为dupe。