簡體   English   中英

實體框架排序導航對象

[英]Entity Framework Ordering Navigate Objects

我有一個如下查詢

 return this.Context.Modules
               .Select(p => new
               {
                   Module = p,
                   Page = p.Pages.OrderBy(c => c.AuthOrder)

               }).ToList()
               .Select(a => a.Module)
               .ToList();

但是我正在使用EF 4.2,我嘗試這樣並通過SQL Profiler進行監視,EF生成了更多嵌套的sql查詢,我只想對此工作進行一次查詢

select * from Modules m join Pages p on m.ID = p.Module_ID
order by p.AuthOrder

那怎么可能?

像這樣查詢

select * from Modules m join Pages p on m.ID = p.Module_ID
order by p.AuthOrder

可以通過以下方式實現:

var q = (from c in Context.Modules
            join o in Context.Pages on c.ID equals o.Module_ID
            orderby o.AuthOrder
            select new {c, o}).ToList();

您可能正在尋找Include()來指定要包含在結果中的相關對象(即,必須在SQL請求中聯接哪些表):

return this.Context.Modules.Include("Pages")
               .Select(p => new
               {
                   Module = p,
                   Page = p.Pages.OrderBy(c => c.AuthOrder)

               }).ToList()
               .Select(a => a.Module)
               .ToList();

編輯 :您確定您的查詢有意義嗎? 實際上,您實際上只是選擇Module ,所以為什么要首先嘗試訂購Pages

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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