当前位置: 首页 > 编程语言 > C#

LINQOrderByNameThenByChildrenCollection.Name分享

时间:2023-04-10 18:54:27 C#

LINQOrderByNameThenByChildrenCollection.Name有没有办法在LINQ中做一个OrderBy,然后用ThenBy做一个ThenBy,用父对象的childfor二次排序?_repository.GetActiveDepartmentGroupsWithDepartments().OrderBy(c=>c.DepartmentGroupName).ThenBy(c=>c.Departments.OrderBy(d=>d.DepartmentName))在上面的示例中,c.Departments是一个EntityCollection。顺便说一句:当我尝试上面的方法然后对其执行ToList()时,我收到此错误:DbSortClause表达式必须具有可比较顺序的类型。参数名称:key在此先感谢您的帮助或指导。看起来您正在尝试获取按组和部门名称排序的所有部门的列表。如果是这样,那么您可能想做这样的事情:varres=fromcin_repository.GetActiveDepartmentGroupsWithDepartments()fromdinc.Departmentsorderbyc.DepartmentGroupName,d.DepartmentNameselectd;或者在方法语法中:varres=_repository.GetActiveDepartmentGroupsWithDepartments().SelectMany(c=>c.Departments,(c,d)=>new{c,d}).OrderBy(x=>xcDepartmentGroupName).ThenBy(x=>xdDepartmentName).Select(x=>xd);由于Deparment是一个集合,您必须将其转换为标量以用于排序。一个选项是选择集合中的单个实体,例如第一个部门的名称:_repository.GetActiveDepartmentGroupsWithDepartments().OrderBy(c=>c.DepartmentGroupName).ThenBy(c=>c.Departments.OrderBy(d=>d.DepartmentName).FirstOrDefault().DepartmentName)另一种选择是根据集合本身的属性排序,比如部门数:以上就是C#学习教程:LINQOrderByNameThenByChildrenCollection的全部内容。名字,如果对大家有用还有需要了解更多C#学习教程的,希望大家多多关注—_repository.GetActiveDepartmentGroupsWithDepartments().OrderBy(c=>c.DepartmentGroupName).ThenBy(c=>c.Departments.Count())本文来自网络合集,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: