2011-06-25 23 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を試してみてください。列は表示されません。

次のように私は、SQLクエリを記述します。

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キーワード。

はここに行く、 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

関連する問題