这是我正在做的:
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/