我是EF和Linq的新手。
我有2个表,一个“新闻”表和一个“相关新闻”表。每个新闻项目都应显示几个相关新闻项目。
“新闻”包含新闻故事的唯一ID和详细信息。
“相关新闻”的每一行都引用了“新闻”表中的父ID以及对相关新闻故事的ID的引用,这又对应于“新闻”表中的ID
我正在尝试创建一个给出新闻ID的linq查询,将显示相关新闻报道的列表,详细信息来自“新闻”表。
我管理的最好的是以下内容,但这只是基于父键而不是相关新闻项密钥从新闻表中获取故事。
var query = from n in context.NewsPosts
from nr in n.RelatedNewsPosts
where nr.NewsId == NewsId
select n;
我有一种感觉,正确的查询可能不是太复杂,但我无法弄明白!
非常感谢任何帮助!
答案 0 :(得分:1)
您切换了NewsPosts和RelatedNewsPosts表。给定一个新闻ID,查看该id的所有RelatedNewsPosts,然后加入它引用的NewsPosts。
没有经过测试,但我认为这是你想要的想法(不知道它是如何设置的,但至少你得到了主要想法):
var givenNewsId = ...;
var query = from nr in context.RelatedNewsPosts
join n in context.NewsPosts on nr.RelatedNewsId equals n.NewsId
where nr.NewsId = givenNewsId
select n;