Entity Framework にはネストされたプロパティ レベルが含まれています
Entity Framework で Include() メソッドを使用して関連データを含むオブジェクトを取得する場合、一般的な制限は、複数レベルのネストされたプロパティを含めることがサポートされていないことです。たとえば、ApplicationServers が ApplicationsWithOverrideGroup コレクションを保持し、そのコレクションに Application プロパティと CustomVariableGroup プロパティが含まれるモデルがあるとします。
最初の試行:
ネストされた属性を含めるには、次のことを試すことができます:
<code class="language-csharp">public IEnumerable<applicationserver> GetAll() { return this.Database.ApplicationServers .Include(x => x.ApplicationsWithOverrideGroup) .Include(x => x.ApplicationWithGroupToForceInstallList) .Include(x => x.CustomVariableGroups) .ToList(); }</code>
ただし、この方法では、ApplicationWithOverrideVariableGroup の Enabled プロパティのみが設定され、Application プロパティや CustomVariableGroup プロパティは設定されません。
EF 6 の解決策:
EF 6 にネストされたプロパティを含めるには、ラムダ式を受け入れる Include() のオーバーロードを使用します。
<code class="language-csharp">using System.Data.Entity; query.Include(x => x.Collection.Select(y => y.Property));</code>
EF Core のソリューション:
EF Core では、ThenInclude メソッドを使用して、ネストされたプロパティを含めます。
<code class="language-csharp">using Microsoft.EntityFrameworkCore; query.Include(x => x.Collection) .ThenInclude(x => x.Property);</code>
これらのメソッドを使用すると、入れ子になったプロパティ レベルを Entity Framework に積極的に読み込むことができ、オブジェクトに必要なデータが完全に入力されるようにすることができます。
以上がInclude() を使用して Entity Framework にネストされたプロパティを含めるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。