Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Melakukan Gabungan Kiri, Kumpulan Mengikut, dan Kira dengan LINQ ke SQL?

Bagaimana untuk Melakukan Gabungan Kiri, Kumpulan Mengikut, dan Kira dengan LINQ ke SQL?

Linda Hamilton
Lepaskan: 2025-01-08 20:17:49
asal
176 orang telah melayarinya

How to Perform a Left Join, Group By, and Count with LINQ to SQL?

LINQ ke SQL: Meninggalkan Sertai, Kumpulan Mengikut dan Kira

Contoh ini menunjukkan cara melakukan operasi gabungan kiri, kumpulan mengikut dan kiraan menggunakan LINQ ke SQL, mencerminkan kefungsian pertanyaan SQL tertentu.

Pertanyaan SQL:

Pertanyaan SQL berikut berfungsi sebagai sasaran kami untuk terjemahan LINQ:

<code class="language-sql">SELECT p.ParentId, COUNT(c.ChildId)
FROM ParentTable p
LEFT OUTER JOIN ChildTable c ON p.ParentId = c.ChildParentId
GROUP BY p.ParentId</code>
Salin selepas log masuk

Pertanyaan ini menyertai ParentTable dan ChildTable, mengira rekod anak untuk setiap ibu bapa dan mengendalikan kes di mana ibu bapa tidak mempunyai anak (menggunakan LEFT OUTER JOIN).

Setara LINQ kepada SQL:

Pertanyaan LINQ yang setara dengan SQL menggunakan klausa join, DefaultIfEmpty() untuk gelagat gabungan kiri, group by dan kaedah Count() dengan predikat untuk mengira hanya ID anak bukan nol:

<code class="language-csharp">var query = from p in context.ParentTable
            join c in context.ChildTable on p.ParentId equals c.ChildParentId into j1
            from j2 in j1.DefaultIfEmpty()
            group j2 by p.ParentId into grouped
            select new { 
                ParentId = grouped.Key, 
                ChildCount = grouped.Count(t => t.ChildId != null) 
            };</code>
Salin selepas log masuk

Pertanyaan LINQ ini mencapai hasil yang sama seperti pertanyaan SQL. Gabungan into j1 dan from j2 in j1.DefaultIfEmpty() melaksanakan cantuman luar kiri dengan betul. Klausa group by mengumpulkan hasil dengan ParentId, dan kaedah Count(), menggunakan syarat (t => t.ChildId != null), memastikan bahawa hanya rekod anak sedia ada dikira. Jenis tanpa nama new { ParentId, ChildCount } mencipta set hasil akhir.

Ini dengan jelas dan ringkas menterjemahkan logik pertanyaan SQL ke dalam ungkapan LINQ yang boleh dibaca dan diselenggara.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Gabungan Kiri, Kumpulan Mengikut, dan Kira dengan LINQ ke SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan