[英]More efficient Linq-to-SQL query
我正在寻找一种更有效的方法来执行此操作(请参阅下文),因为我有七篇专题文章,因此我必须执行七次。 我要提供的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();
我坚持使用这种表格布局。
谢谢。
看看这个。 这些都是内部联接,我不确定这是否完全是您所需要的? 如果没有让我知道。
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 };
我还可以将新选择更改为您需要的字段。
大部分功劳归功于旁观者。
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();
您应该可以使用此查询代替现有查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.