Linq:包括多个表时的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\"; 
页面和关键字之间存在一对多关系,即FK关键字。 谢谢, 德狗     

解决方法

        干得好。
          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
                      });