【问题标题】:How to order by some multiple columns using LINQ [closed]如何使用 LINQ 按多列排序 [关闭]
【发布时间】:2016-04-28 14:23:12
【问题描述】:

这是我的订单 我希望由 LoggedIn 用户审查的 Inprogress 和最近修改的评论在顶部意味着我的评论应该在顶部

然后是 Inprogress 和最近修改过的其他用户第二次审查的审查

 (SomeQuery)
   .OrderByDescending(o => o.ReviewerId == loggeduser.UserId && 
                           o.Status == ReviewStatus.InProgress &&               
                           o.LastModified)
   .ThenByDescending(p => p.Status == ReviewStatus.InProgress && 
                          p.ReviewerId != loggeduser.UserId && 
                          o.LastModified)

Error Igot is= Operator '&&' 不能应用于'bool' 类型的操作数和

【问题讨论】:

  • ReviewStatus.InProgress && o.LastModified),LastModified 是 bool 类型的吗?我怀疑不是,如果是这种情况,您需要将其与某些东西进行比较...否则您的逻辑完全有缺陷...
  • LastModified 是日期时间

标签: c# mysql asp.net-mvc linq


【解决方案1】:

使用以下顺序

(SomeQuery).Where(where 条件).OrderByDescending(order by condition).ThenBy(如果需要,另一个 order by condition)

【讨论】:

    【解决方案2】:

    只是比较一下

       .OrderByDescending(o => o.ReviewerId == loggeduser.UserId && 
                               o.Status == ReviewStatus.InProgress &&               
                               o.LastModified == true)
       .ThenByDescending(p => p.Status == ReviewStatus.InProgress && 
                              p.ReviewerId != loggeduser.UserId && 
                              o.LastModified == true)
    

    【讨论】:

    • LastModified 是日期时间
    • 由于 LastModified 我收到错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 2013-07-31
    • 2013-07-21
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    相关资源
    最近更新 更多