【问题标题】:LINQ Multiple Order ByLINQ 多重排序依据
【发布时间】:2011-06-07 19:12:00
【问题描述】:

我有 3 个表格小册子、类别和程序。 Pamphlet 表有一个 CategoryID 和 ProgramID 列。以下代码有效:

var pamphlets = db.Pamphlets.Include("Category").Include("Program").ToList();

我需要做的是按 CategoryName(Category 表)和 PamphletName(Pamphlet 表)排序。

【问题讨论】:

标签: c# linq


【解决方案1】:

您只需将调用链接到 ThenBy():

var sortedPamphlets = db.Pamphlets.Include("Category").Include("Program")
                        .OrderBy(p => p.Category.CategoryName)
                        .ThenBy(p => p.PamphletName)
                        .ToList();

【讨论】:

  • ToList 之前放置OrderBy 给数据库一个机会不是更好吗?
  • @Snowbear JIM-compiler - 我们同时有同样的想法。在我看到您的评论之前进行了更改。
  • 谢谢!我真的很感激。我知道这一定很简单。
【解决方案2】:

怎么样:

var pamphlets = (from p in db.Pamphlets.Include("Category").Include("Program")
                orderby p.Category.CategoryName, p.PamphletName
                select p).ToList();

【讨论】:

    【解决方案3】:

    试试这个:

    var pamphlets = (from i in db.Pamphlets.Include("Category").Include("Program")
                     orderby i.Category.CategoryID, i.PamphletName
                     select i).ToList();
    

    【讨论】:

      猜你喜欢
      • 2010-09-22
      • 1970-01-01
      • 1970-01-01
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      相关资源
      最近更新 更多