我正在寻找一种更有效的方法来做到这一点......(见下文)......我必须执行七次,因为我有七篇专题文章。我正在提供的ID是页面ID(又名featurearticles.fk_pageID_item1 featurearticles.fk_pageID_item2)。
我可以使用表连接而不选择*原样。我也可以制作一个临时对象来保存信息。
DataAccess.Page pgf1 = (from p in db.Pages
where p.pageID == featurearticles.fk_pageID_item1
select p).FirstOrDefault();
PageArticle paf1 =(from pa in db.PageArticles
where pa.page_art_pageID == pgf1.pageID &&
pa.page_art_isCurrent ==true
select pa).FirstOrDefault();
Article af1 = (from a in db.Articles
where a.articleID == paf1.page_art_articleID
select a).FirstOrDefault();
我坚持使用这种表布局。
感谢。
答案 0 :(得分:2)
看看这个。这些都是内部联接,我不确定这是否完全符合您的要求?如果不让我知道。
var tp = from p in Pages
join pa in PageArticles on p.pageID equals pa.page_art_pageID
join a in Articles on pa.page_art_articleID equals a.articleID
where p.pageID == featurearticles.fk_pageID_item1
&& pa.page_art_isCurrent
select new { p, pa, a };
我也可以将新选择更改为您需要的任何字段。
答案 1 :(得分:1)
大部分功劳归功于旁观者。
Article af1 = (from p in db.Pages
join pa in db.PageArticles on p.pageID equals pa.page_art_pageID
join a in db.Articles on pa.page_art_articleID equals a.articleID
where p.pageID == featurearticles.fk_pageID_item1
&& pa.page_art_isCurrent == true
select a).FirstOrDefault();
您应该可以将此查询用作替代已有内容的替代品。