Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Melakukan Gabungan Pelbagai Medan dalam Satu Pertanyaan LINQ?

Bagaimana untuk Melakukan Gabungan Pelbagai Medan dalam Satu Pertanyaan LINQ?

Susan Sarandon
Lepaskan: 2025-01-24 02:19:10
asal
983 orang telah melayarinya

How to Perform Multi-Field Joins in a Single LINQ Query?

Sambungan berbilang medan LINQ: mengaitkan berbilang entiti dengan cekap

Dalam LINQ, menyambungkan berbilang entiti biasanya menggunakan kata kunci join. Walaupun gabungan satu medan lebih biasa, gabungan berbilang medan boleh dilaksanakan dengan mudah melalui pelarasan sintaks yang mudah.

Sintaks gabungan berbilang medan

Sintaks untuk menyertai berbilang medan dalam satu pertanyaan LINQ adalah seperti berikut:

<code class="language-csharp">from x in entity
join y in entity2 
   on new { x.field1, x.field2 } equals new { y.field1, y.field2 }</code>
Salin selepas log masuk
Kata kunci

new mencipta jenis tanpa nama yang menggabungkan medan daripada dua entiti yang digunakan untuk penyertaan. Jenis tanpa nama di sebelah kiri tanda yang sama mewakili keadaan sambungan entiti pertama, dan sebelah kanan mewakili keadaan sambungan entiti kedua.

Contoh

Berikut ialah contoh:

<code class="language-csharp">var result = from x in entity
   join y in entity2 
   on new { x.field1, x.field2 } equals new { y.field1, y.field2 }</code>
Salin selepas log masuk

Pertanyaan ini akan menyertai field1 dan field2 berdasarkan medan entity dan entity2, mengembalikan jujukan gabungan yang mengandungi rekod yang sepadan dengan medan yang ditentukan dalam kedua-dua entiti.

Nota lain

Perlu diingat bahawa jenis data medan sambungan mestilah serasi. Selain itu, kata kunci join melakukan gabungan dalaman, yang bermaksud bahawa hanya rekod dengan nilai medan yang sepadan akan dikembalikan.

Jika anda perlu melakukan sambung luar kiri, anda boleh menggunakan operator GroupJoin. Contohnya:

<code class="language-csharp">var result = from x in entity
   join y in entity2 
   on new { x.field1, x.field2 } equals new { y.field1, y.field2 } into yGroup
   from y in yGroup.DefaultIfEmpty()</code>
Salin selepas log masuk

Pertanyaan ini akan melakukan gabungan luar kiri, memastikan semua rekod dalam jadual entity dikembalikan, walaupun tiada rekod sepadan dalam jadual entity2.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Gabungan Pelbagai Medan dalam Satu Pertanyaan LINQ?. 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