EF Linq父母和孩子,并回到父母

时间:2012-08-29 19:23:41

标签: .net linq entity-framework frameworks entity

我是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;

我有一种感觉,正确的查询可能不是太复杂,但我无法弄明白!

非常感谢任何帮助!

1 个答案:

答案 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;