LINQ kepada Entiti: Memahami Join
dan GroupJoin
LINQ kepada Entiti menyediakan dua pengendali utama, Join
dan GroupJoin
, untuk mendapatkan semula data hubungan. Join
mencerminkan SQL INNER JOIN
, mencipta pemetaan satu sama satu antara set data. Sebaliknya, GroupJoin
, serupa dengan OUTER JOIN, memberikan set hasil yang lebih lengkap.
GroupJoin
: Pandangan Lebih Dekat
Tidak seperti Join
, GroupJoin
menghasilkan jujukan elemen induk, setiap satu dipasangkan dengan koleksi elemen anak yang berkaitan. Ini penting apabila mengekalkan struktur ibu bapa-anak adalah penting.
Bila Penggunaan GroupJoin
GroupJoin
cemerlang dalam situasi seperti:
Menjana Cantuman Luar Leper: Gabungkan GroupJoin
dengan DefaultIfEmpty()
untuk mengubah kumpulan bersarang kepada format jadual.
Memelihara Susunan Elemen: Dalam senario yang melibatkan elemen induk tersusun (cth., memilih berdasarkan urutan ID), GroupJoin
boleh mengekalkan susunan itu.
Pelaksanaan dalam C#
Sintaks C# untuk GroupJoin
berbeza daripada Join
:
<code class="language-csharp">from p in Parent join c in Child on p.Id equals c.Id into g select new { Parent = p, Children = g }</code>
Contoh Ilustrasi
Mari kita periksa dua senarai sampel:
<code>Id Value 1 A 2 B 3 C Id ChildValue 1 a1 1 a2 1 a3 2 b1 2 b2</code>
Menggunakan Join
:
<code>Value ChildValue A a1 A a2 A a3 B b1 B b2</code>
Menggunakan GroupJoin
:
<code>Value ChildValues A [a1, a2, a3] B [b1, b2] C []</code>
Atas ialah kandungan terperinci Sertai lwn.Sertai Kumpulan dalam LINQ-to-Entities: Bilakah Saya Perlu Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!