Klausa WHERE Dinamik dalam LINQ
Apabila membuat pertanyaan LINQ yang kompleks, anda mungkin perlu memasang klausa WHERE secara dinamik berdasarkan input pengguna atau faktor masa jalan yang lain. Artikel ini meneroka cara untuk mencapai ini dengan cekap menggunakan LINQ.
Pasang klausa WHERE dinamik
Salah satu cara untuk memasang klausa WHERE dinamik adalah dengan merantai berbilang klausa WHERE dalam pertanyaan. Ini membolehkan anda menambah atau mengalih keluar penapis berdasarkan kriteria tertentu.
Berikut ialah contoh:
<code class="language-csharp">var q = from c in db.ProductDetail where c.ProductGroupName == productGroupName && c.ProductTypeName == productTypeName select c; // 动态过滤 foreach (var filter in filterDictionary) { string fieldName = filter.Key; List<string> values = filter.Value; if (values.Count > 0) { q = q.Where(c => values.Contains(c[fieldName])); } }</code>
Dalam contoh ini, untuk setiap pasangan nilai kunci dalam Kamus penapis, kami menyemak sama ada nama medan yang sepadan mempunyai sebarang nilai. Jika ada, kami menambah klausa WHERE baharu pada pertanyaan yang menapis hasil berdasarkan nilai ini.
Pautan klausa WHERE
Anda boleh mencipta keadaan penapis yang kompleks dan dinamik dengan mudah dengan merantai beberapa klausa WHERE. Contohnya, anda boleh menapis mengikut berbilang medan, menyemak julat nilai atau menggabungkan berbilang keadaan menggunakan operator logik seperti DAN atau ATAU. Fleksibiliti ini membolehkan anda menyesuaikan pertanyaan berdasarkan keperluan khusus senario anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Klausa Dynamic WHERE dalam LINQ untuk Mengendalikan Kriteria Penapisan Pembolehubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!