penapis termasuk
Dengan penapisan termasuk, anda boleh mengurangkan julat data yang dikembalikan oleh atribut navigasi semasa pertanyaan. Ini amat berguna apabila anda perlu menapis mengikut atribut yang mengandungi entiti.
Contoh
Pertimbangkan kod berikut:
Kod ini mengandungi semua jawatan dan penulis setiap blog. Untuk menapis keputusan mengikut nama pengarang, anda boleh menggunakan di mana operasi:
<code class="language-csharp">using (var context = new BloggingContext())
{
var blogs = context.Blogs
.Include(blog => blog.Posts)
.ThenInclude(post => post.Author)
.ToList();
}</code>
Salin selepas log masuk
operasi yang disokong
<code class="language-csharp">using (var context = new BloggingContext())
{
var blogs = context.Blogs
.Include(blog => blog.Posts)
.ThenInclude(post => post.Author)
.Where(blog => blog.Posts.Any(p => p.Author == "me")) // 修正后的Where条件
.ToList();
}</code>
Salin selepas log masuk
EF Core 5 menyokong operasi berikut untuk penapisan termasuk:
di mana
orderby (turun)/thenby (deshenging)
- Skip
ambil
-
Penjelasan penting
-
Setiap atribut navigasi hanya membenarkan satu penapis. -
Penapisan seterusnya termasuk akan mengumpul hasil.
Walaupun pemuatan kelewatan diaktifkan, penapisan termasuk dianggap pemuatan.
Ekspresi penapis mestilah "predikat bebas" yang boleh digunakan secara bebas untuk penapisan koleksi. -
- Penapis termasuk dan penapisan pertanyaan
- Penapis termasuk tidak akan menjejaskan bilangan item yang dikembalikan oleh pertanyaan utama. Untuk menapis hasil pertanyaan utama, gunakan berasingan di mana operasi dan masukkan.
- unjuran dan penapisan termasuk
Unjuran biasanya mengabaikan termasuk, tanpa mengira sama ada mereka telah ditapis. Walau bagaimanapun, jika entiti dalam unjuran boleh dimasukkan, termasuk akan digunakan untuknya. (Nota: Dalam teks asal, perihalan unjuran dan penapisan termasuk terlalu ringkas, dan penerangan tambahan lebih jelas di sini.)
Atas ialah kandungan terperinci Bagaimanakah saya boleh menapis data yang dikembalikan oleh sifat navigasi dalam teras EF termasuk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!