实体框架排序嵌套集合

时间:2014-02-14 20:37:54

标签: c# linq entity-framework

如何对嵌套集合(集合中的集合)进行排序(orderby)属性

if (query.Sort.ProjectA == SortOperation.Desc)
{
    entities = entities
               .OrderByDescending(r => r.ProjectCollection.Select(p => p.JobNumber));
}
else
{
    entities = entities.OrderBy(r => r.ProjectCollection.Select(p =>p.JobNumber));
}

上面的代码出现以下错误

  

DbSortClause表达式必须具有可比较的类型   参数名称:key

1 个答案:

答案 0 :(得分:2)

撤消对SelectOrderBy的使用。不要按选定的集合排序,选择有序的集合:

var query = entities.Select(r => r.ProjectACollection.OrderBy(p => p.JobNumber));

如果您还想要其他字段,请选择一个新实体或其他类型以及您想要包含的所有其他字段。