Menguasai Pendapatan Harta Bersarang dalam Rangka Kerja Entiti
KaedahRangka Kerja Entiti memudahkan pemuatan entiti yang berkaitan. Walau bagaimanapun, mengambil sifat bersarang dalam memerlukan pendekatan yang lebih canggih.Include()
Cabaran: Penghidratan Objek Separa
Pertimbangkan senario ini: anda mendapatkan semula dan memerlukan harta ApplicationServers
yang terisi penuh, termasuk harta ApplicationsWithOverrideGroup
dan Application
bersarangnya. Panggilan CustomVariableGroup
mudah mungkin gagal:Include()
<code class="language-csharp">public IEnumerable<applicationserver> GetAll() { return this.Database.ApplicationServers .Include(x => x.ApplicationsWithOverrideGroup) ... .ToList(); }</applicationserver></code>
sifat Enabled
, meninggalkan ApplicationWithOverrideVariableGroup
dan Application
tidak berpenghuni.CustomVariableGroup
Penyelesaian: Pemuatan Bersarang yang Cekap
Untuk menyelesaikan masalah ini, gunakan panggilan bersarang (EF6) atau kaedah Include()
(Teras EF):ThenInclude()
Rangka Kerja Entiti 6:
Gunakan kaedah dengan ungkapan lambda untuk kemasukan harta bersarang:Select()
<code class="language-csharp">query.Include(x => x.Collection.Select(y => y.Property))</code>
Teras Rangka Kerja Entiti:
Gunakan kaedah untuk penyelesaian yang lebih bersih dan mudah dibaca:ThenInclude()
<code class="language-csharp">query.Include(x => x.Collection) .ThenInclude(x => x.Property);</code>
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan sifat bersarang dengan cekap menggunakan rangka kerja entiti termasuk kaedah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!