目前正在学习Linq to Entity。我成功了,但是却遇到了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
答案 0 :(得分: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
});