LINQ 多重排序依据
Posted
技术标签:
【中文标题】LINQ 多重排序依据【英文标题】:LINQ Multiple Order By 【发布时间】:2011-06-07 19:12:00 【问题描述】:我有 3 个表格小册子、类别和程序。 Pamphlet 表有一个 CategoryID 和 ProgramID 列。以下代码有效:
var pamphlets = db.Pamphlets.Include("Category").Include("Program").ToList();
我需要做的是按 CategoryName(Category 表)和 PamphletName(Pamphlet 表)排序。
【问题讨论】:
Multiple "order by" in 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();
【讨论】:
以上是关于LINQ 多重排序依据的主要内容,如果未能解决你的问题,请参考以下文章