Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk mendapatkan sifat bersarang dengan cekap menggunakan rangka kerja entiti termasuk kaedah?
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>Ini hanya memuatkan
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>Teknik ini memastikan penghidratan objek yang lengkap, menyediakan semua data bersarang yang diperlukan dalam entiti yang anda dapatkan semula. Ini menghapuskan keperluan untuk pertanyaan pangkalan data seterusnya, mengoptimumkan prestasi dan mendapatkan semula data.
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!