Entity Frameworkコアに複数のレベルの関連データをロードすると期待どおりに動作しない

c# eager-loading entity-framework entity-framework-core

質問

私は、 Articleオブジェクトに関連するいくつかのデータを熱心に読み込みたいです。

return await context.Articles
    .Include(x => x.ArticleTags)
        .ThenInclude(x => x.Tag)
            // .ThenInclude(x => x.Value)
    .Include(x => x.Author)
        .ThenInclude(x => x.UserInfo)
    .Include(x => x.Approver)
        .ThenInclude(x => x.UserInfo)
    .Include(x => x.Rejecter)
        .ThenInclude(x => x.UserInfo)
    .Include(x => x.LinkSubmitter)
        .ThenInclude(x => x.UserInfo)
    .FirstOrDefaultAsync(x => x.Id == id);

この記事オブジェクトでは、表示されているすべてのプロパティはnullでも空でもかまいません。 eg no tags, no author, no approver .. etc.

クエリはそのまま(コメントアウトされた行とともに)動作します。

しかし、入れ子のThenInclude()をインクルードすると、エラーが発生して失敗します。

System.ArgumentNullException:値にnullを設定することはできません。パラメータ名:source

この理由は記事にタグがなく、存在しないタグの値を熱心に読み込もうとしているからです。どのように私は熱心に記事のために存在するかもしれないすべてのタグデータを読み込むでしょうか?

受け入れられた回答

しよう。 .Include(x => x.ArticleTags.Tag?.Value)



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ