1

我是 EF 和 Linq 的新手。

我有 2 个表,一个“新闻”表和一个“相关新闻”表。每个新闻项目都应该显示几个相关新闻项目。

“新闻”包含新闻故事的唯一 ID 和详细信息。

“相关新闻”的每一行都有一个对“新闻”表中父 ID 的引用和对相关新闻故事的一个 ID 的引用,该 ID 又对应于“新闻”表中的一个 ID

我正在尝试创建一个给定新闻 ID 的 linq 查询,它将显示相关新闻故事的列表,详细信息取自“新闻”表。

我管理过的最好的是以下,但这只是根据父键而不是相关的新闻项键从新闻表中获取故事。

        var query = from n in context.NewsPosts
                    from nr in n.RelatedNewsPosts
                    where nr.NewsId == NewsId 
                    select n;

我感觉正确的查询可能不太复杂,但我想不通!

非常感谢任何帮助!

4

1 回答 1

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;
于 2012-08-29T19:30:10.273 回答