【问题标题】:How to order by two fields? [duplicate]如何按两个字段排序? [复制]
【发布时间】:2013-05-21 05:46:36
【问题描述】:

如何通过StartDateUserLikeProduct订购?我需要按StartDate 排序,但首先按UserLikeProduct 显示。

public IEnumerable<Check> GetHomeCeeck()
{    
    return this.Query()
               .Where(c => c.IsPublish && c.IsHomepageProduct)
               .OrderBy(c => c.StartDate)
               .Take(30)
               .ToList();
}

【问题讨论】:

    标签: c# linq sorting


    【解决方案1】:

    如果我没听错的话,你想先一个然后另一个?

    .OrderBy(lambda) 之后使用.ThenBy(lambda)

    如果这不是你的意思,请告诉我,我会删除这个答案

    .OrderBy(c => c.StartDate).ThenBy(c => c.Like)
    

    【讨论】:

    • 关键字“asc”附近的语法不正确。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.Data.SqlClient.SqlException:关键字“asc”附近的语法不正确。源错误:第 25 行:{ 第 26 行:第 27 行:返回 this.Query().Where(c => c.IsPublish && c.IsHomepageProduct).OrderBy(c=>c.StartDate).ThenBy(c=>c .UserLikeProduct).Take(30).ToList();第 28 行:} 第 29 行:
    • @smartboy 'UserLikeProduct' 是什么数据类型?它是 IComparable 吗?虽然这可能无关紧要,因为这是试图生成 SQL
    【解决方案2】:

    看到这个问题:Multiple Order By with LINQ

    你需要 OrderBy() 然后 ThenBy()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-15
      • 2019-03-19
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 2011-02-16
      • 2015-01-20
      相关资源
      最近更新 更多