【发布时间】:2015-06-09 09:55:14
【问题描述】:
根据我的阅读,我可以使用 LINQ 到第一个组,然后使用“SelectMany”对每个组进行排序,如下所述:How to group a IQueryable by property 1 but order by property 2?
但我猜这对 IQueryable 不起作用。
我们基本上得到一个带有 Main-Entity 和 IEnumable 实体的 BusinessObject,所以我想先按 Main-Entity 序列,然后按子实体的每个名称。
所以我猜我的查询在 LINQ to objects 中看起来像这样:
var qry = GetQueryFromSomeWhere();
qry = qry.OrderBy(f => f.MainEntity.SequenceNumber)
.ThenBy(f => f.SubEntities.SelectMany(f => f.Name));
我可以在查询服务中订购此名称,但应该由消费者根据需要订购实体。
是否有可能在不加载内存中的所有实体的情况下以某种方式完成这项工作?
【问题讨论】:
-
GetQueryFromSomeWhere() 返回什么?我认为要得到你想要的,它应该返回 List
-
不,Service 故意返回一个带有一些“通用”业务对象的 IQueryable,客户端可以使用这些业务对象进行过滤、排序等。
标签: c# linq entity-framework