簡體   English   中英

LINQ to Entities:分組然后排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM