当前正在学习 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";
页面和关键词是一对多的关系,即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
});
关于Linq:包含多个表时的 Orderby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6475302/