これらのモデルを最初に持っていると仮定します:
Method
が1つあるOriginalCode
OriginalCode
が多いMutant
s Mutant
が多いParseSubTree
s
今度はMethod
でクエリを実行するときに、もう一方をロードしたいと思います。だから私は以下を持っています:
Method targetMethod = dBContext.Methods
.Include(me => me.OriginalCode)
.ThenInclude(oc => oc.Mutants)
.FirstOrDefault(me => me.Id == id);
次のステップは、ParseSubTree
を追加で含めることです。しかし、それは私がそれにアクセスできないことです。次の画像を参照してください。
問題は「muはオブジェクト参照ではなくリストである」ということです。
私の間違いはどこにありますか?
TG。
これは、コレクションタイプのナビゲーションプロパティのThenInclude
オーバーロードに関するIntellisenseの既知の問題であり、 フォールトトレランスケース#8237でラムダパラメーターのメンバーが不足している場合の完了 Roslyn GitHubの問題によって追跡されます。
修正されるまで、プロパティの名前を入力するだけで、正常にコンパイルされ、期待どおりに動作します。
.ThenInclude(mu => mu.ParseSubTrees)
更新:EF Coreドキュメントの 複数のレベルを含む セクションで具体的に言及されています:
注
Visual Studioの現在のバージョンでは、コード補完オプションが正しくないため、コレクションナビゲーションプロパティの後に
ThenInclude
メソッドを使用すると、正しい式に構文エラーのフラグが付けられる可能性があります。これは、 https://github.com/dotnet/roslyn/issues/8237 で追跡されているIntelliSenseバグの症状です。コードが正しく、正常にコンパイルできる限り、これらの誤った構文エラーを無視しても安全です。