我有一个包含两个可为空的日期时间列 ETA 和 ETD 的表。一个人总是有价值的。我想按日期订购表格。因此,例如,如果 ETA 为空,请使用 ETD 进行订购。如果 ETD 为空,则使用 ETA,如果两者都不为空,则使用 ETA(因为它始终是第一个)。
我有这个:
var route = db.RouteJourney.Where(j => j.JourneyId == id).OrderByDescending(j => j.ETA ?? j.ETD);
我也试过这个(这是一样的):
var route = db.RouteJourney.Where(j => j.JourneyId == id).OrderByDescending(j => j.ETA.HasValue ? j.ETA : j.ETD);
我错过了什么吗?我的小脑袋说,如果 ETA 为空,请使用 ETD,然后订购它,但它没有给出正确的结果。
任何帮助表示赞赏。
编辑
我得到了这个:
如果 RouteJourney 是 [Name, RouteId (Key), JourneyId, ETA, ETD]
和价值观是:
[Stop A, 1, 1, null, 10/03/13], [Stop B, 4, 1, 12/03/13, 13/03/13], [Stop C, 2, 1, 14/03/ 13, null], [D 站, 3, 1, 16/03/13, null]
像这样订购:
停止 C 停止 B 停止 A 停止 D
谢谢...