c# - 在 LINQ 中,如何对来自 .Include() 的数据执行 .OrderBy()?

标签 c# asp.net-mvc linq

这是我正在做的:

List<Category> categories = 
  db.Categories.Include("SubCategories").OrderBy(c => c.Order).ToList();

我的类别表中有一个名为“顺序”的列,它只包含一个整数,为该表提供某种排序顺序。

我的“子类别”表中有相同的列...

我想知道在我的子类别表中添加排序的最简单的解决方案...类似于:

List<Category> categories = 
  db.Categories.Include("SubCategories").OrderBy(c => c.Order)
     .ThenBy(c => c.SubCategories as x => x.Order).ToList();

我想将其保存为这种 LINQ 格式...(方法格式)...

请记住,我在 MVC 中工作,需要将其作为模型返回到 View 。由于 AnonymousTypes,我一直遇到错误问题......

最佳答案

我不确定这是否受支持,但可以这样做:

List<Category> categories = 
  db.Categories.Include(c => c.SubCategories.OrderBy(s => s.Order)).OrderBy(c => c.Order)

Include 方法现在支持这样的表达式,但我不确定它是否也支持排序。

您可能最好在使用子类别时对它们进行排序,这可能在您看来是这样。

例如:

@for (var cat in Model.Categories) {
   @cat.Name
   @for (var sub in cat.SubCategories.OrderBy(c => c.Order) {
       @sub.Name
   }
}

关于c# - 在 LINQ 中,如何对来自 .Include() 的数据执行 .OrderBy()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8158939/

相关文章:

LINQ Join/Union 两个优先于第二个优先于第一个的对象列表

c# - 如何从iOS SecKeyRef中提取RSA参数?

c# - .Net 上缺少 InstallUtil

c# - 如何使用 Dapper 从数据库中检索单个值

c# - 如何以编程方式获取捆绑版本 token ?

c# - 在 @html.Editorfor Razor 中组合多个属性

c# - NHibernate 或 LINQ to SQL

c# - Linq to Sql 中的数据类型转换

c# - 每秒更新一次 SQL Server 数据库表

c# - 将使用 Dreamweaver 的设计人员与 Visual Studio C# 开发人员集成的最佳方式是什么?