1

私は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;

正しいクエリはおそらくそれほど複雑ではないと感じていますが、理解できません!

どんな助けでも大歓迎です!

4

1 に答える 1

1

NewsPosts テーブルと RelatedNewsPosts テーブルを切り替えました。ニュース ID を指定すると、その ID のすべての RelatedNewsPost を調べてから、それが参照する NewsPost に参加します。

テストされていませんが、これはあなたが探しているもののアイデアだと思います(設定方法が正確にはわかりませんが、少なくとも主なアイデアは得られます):

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 に答える