2011-06-25 67 views
2

當前學習Linq to Entity。我成功了,但是卻被orderby子句和它在多個表中的使用所困擾。Linq:包括多個表格時的Orderby

var query = from k in contxt.pages.Include("keywords") 
where k.ID == vals.pageId select k; 

我對上述代碼的理解是它創建了一個ID等於pageId的內連接。

所以我有一個困難的時間可視化是我將如何在兩個表上執行orderby? 我想在兩張桌子上排序。

我曾嘗試:

var query = from k in contxt.pages.Include("keywords") where k.ID == vals.pageId orderby k.keywords.**?** select k; 

問號不應該在那裏。我正在展示我想排序的那一列不在那裏。嘗試這k.Kegwords。不顯示該列。

string query = "SELECT pages.page, pages.title, pages.descp, keywords.keyword 
FROM pages INNER JOIN keywords ON pages.ID = keywords.pageID 
ORDER BY keywords.sort, pages.page"; 

網頁和關鍵字有1對多的關係,這FK關鍵詞:

如下我會寫一個SQL查詢。

謝謝 deDogs

回答

4

在這裏你去。

  var result = (from x in pages 
         join y in keywords on x.ID equals y.pageID 
         orderby y.sort, x.page 
         select new 
         { 
          x.Page, 
          x.title, 
          x.descp, 
          y.keyword 
         }); 
+0

謝謝你,很好,所以它幾乎就像從SQL中思考的那樣。 – deDogs