[英]LINQ to Entities: Group then Order By
从我所读的内容中,我可以使用LINQ来对第一个组进行分组,然后使用“ SelectMany”对每个组进行排序,如下所述: 如何按属性1分组IQueryable但按属性2分组?
但这对IQueryable不起作用。
我们基本上得到了一个带有主实体和IEnumable实体的BusinessObject,所以我想先按主实体序列排序,然后再按子实体的每个名称排序。
所以我想我的查询在LINQ中看起来像这样:
var qry = GetQueryFromSomeWhere();
qry = qry.OrderBy(f => f.MainEntity.SequenceNumber)
.ThenBy(f => f.SubEntities.SelectMany(f => f.Name));
我可以在Query-Service中订购此名称,但是消费者应该根据需要订购实体。
是否有可能在不将所有实体加载到内存的情况下使这种工作正常进行?
如果我没有正确理解,则想按记录名称对每个组内的记录进行排序。 我认为您可以通过在进行分组之前对记录进行排序来实现此目的,请尝试以下代码:
var q = from m in MainEntities
join s in SubEntities on m.Id equals s.MainId
orderby m.SequenceNumber, s.Name
group new { m, s } by m into grp
orderby grp.Key.SequenceNumber
select grp;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.