ホームページ >バックエンド開発 >C++ >Include() を使用して Entity Framework にネストされたプロパティを含めるにはどうすればよいですか?

Include() を使用して Entity Framework にネストされたプロパティを含めるにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-25 06:17:08243ブラウズ

How Can I Include Nested Properties in Entity Framework Using Include()?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。