我有两张桌子
tbl_news tbl_NewsRelation
在tbl_NewsRelation中我有两个外键 在第一个外键我保留一个新闻ID 第二,我保留了相关的新闻ID
我需要获取有关新闻的所有相关新闻
例如news1有3个相关新闻
news3
新闻4
news6
...............................
怎样才能使用linq?
换句话说,我需要做到以下几点:
var query= select * from tbl_relation where FK_NewsID=1
foreach var item in query
{
select * from tbl_news where Id=Fk_RelatedNewsID
}
您可以在下面的链接中下载表格的脚本 script
答案 0 :(得分:0)
使用LINQ可以通过以下几种方法完成此操作。第一个使用子查询Contains
,第二个使用join
。
var relatedNewsIDs = from n in tbl_NewsRelation
where n.newsID == "news1"
select n.relatedNewsID;
var ans = from n in tbl_news
where relatedNewsIDs.Contains(n.newsID)
select n;
使用join
进行第二次查询:
var ans2 = from rn in tbl_NewsRelation
where rn.newsID == "news1"
join n in tbl_news on rn.relatedNewsID equals n.newsID
select n;