【发布时间】:2018-03-16 01:51:07
【问题描述】:
我正在尝试对我的 LINQ 查询执行 OrderByDescending。目前我正在对 ProcedureDate 字段执行 OrderByDescending。
业务场景: 用户最多可以进入应用程序并在应用程序中添加 ChangeProcedureDates 3 次。所以在数据库中还有额外的字段叫做 ChangeProcedureDate1、ChangeProcedureDate2 和 ChangeProcedureDate3。
我想要完成的工作: 我想修改我的 LINQ 查询,以便它可以检查是否在 ChangeProcedureDate1、ChangeProcedureDate2 和 ChangeProcedureDate3 为 NULL 的情况下,然后 OrderBy ProedureDate 因为没有更改。如果ProcedureDate、ChangeProcedureDate1 已填写并且ChangeProcedureDate2 和ChangeProcedureDate3 为NULL,那么我们需要OrderBy ChangeProcedureDate1。 ChangeProcedureDate2 和 ChangeProcedureDate3 也是如此。基本上我需要在多个 DateTimeFields 中找到最新的日期条目并对其进行排序。
下面是我的 LINQ 查询。
var unsortedItems = context.ReservationRequests
.Where(s => ((s.ReservationRequestStatusId.HasValue) &&
(s.ReservationRequestStatusId.Value == ReservationRequestStatusId)) &&
(Roles.Any(y => s.SubmitterGroupName == y) ||
s.CreatedBy == currentUserGuid))
.OrderByDescending(x => x.ProcedureDate ?? DateTime.MinValue);
我很难理解如何在 LINQ 中做到这一点?
【问题讨论】:
-
你不能在这个 stackoverflow 问题stackoverflow.com/questions/298725/multiple-order-by-in-linq 中使用 ThenByDescending 吗?