Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh menyaring termasuk sifat navigasi dalam teras kerangka entiti?
Cabaran: Penapisan pertanyaan utama berdasarkan harta dalam harta navigasi bersarang apabila menggunakan dalam teras kerangka entiti boleh menjadi rumit. Panduan ini menyediakan penyelesaian. Include
Penyelesaian: Memanfaatkan ditapis termasuk
Rangka Kerja Entiti 5 Diperkenalkan Disaring termasuk , ciri yang kuat yang membolehkan penapisan sifat navigasi yang disertakan. Pengendali yang disokong termasuk , Where
/OrderBy
, OrderByDescending
, dan Skip
. Take
Melaksanakan penapis termasuk:
mari kita gambarkan dengan contoh:
<code class="language-csharp">var blogs = context.Blogs .Include(blog => blog.Posts.Where(post => post.Author == "me")) .ThenInclude(post => post.Author) .ToList();</code>pertanyaan ini mengambil blog dan jawatan yang berkaitan, tetapi hanya termasuk jawatan di mana nama pengarang adalah "saya". Perhatikan klausa
dalam kaedah Where
. Include
Pertimbangan utama:
Include
Perhubungan Perhubungan dan ditapis termasuk:
berhati -hati dengan hubungan hubungan. Ia mungkin menambah penyertaan tambahan ke koleksi harta navigasi, yang berpotensi membawa kepada hasil yang tidak dijangka.
ditapis termasuk vs penapisan pertanyaan langsung:
Impak hanya sifat navigasi yang disertakan, bukan pertanyaan utama. Untuk menapis pertanyaan utama berdasarkan harta navigasi, gunakan kaedah Filtered Include
secara langsung pada Where
atau DbSet
. IQueryable
ditapis termasuk dan unjuran:
Projek umumnya mengabaikan kenyataan, walaupun ditapis. Walau bagaimanapun, jika Include
boleh digunakan untuk entiti dalam unjuran, ia masih akan digunakan. Include
Atas ialah kandungan terperinci Bagaimanakah saya boleh menyaring termasuk sifat navigasi dalam teras kerangka entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!