Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Melakukan Gabungan Berbilang Jadual Komprehensif Menggunakan LINQ Lambda?

Bagaimana untuk Melakukan Gabungan Berbilang Jadual Komprehensif Menggunakan LINQ Lambda?

Barbara Streisand
Barbara Streisandasal
2025-01-10 10:42:41791semak imbas

How to Perform a Comprehensive Multi-Table Join Using LINQ Lambda?

Gunakan LINQ Lambda untuk mencapai gabungan cekap berbilang jadual

Apabila memproses data berbilang jadual dalam LINQ, operasi gabungan adalah kunci untuk mendapatkan data berkaitan dengan cekap. Artikel ini akan memperkenalkan cara menggunakan LINQ Lambda untuk melaksanakan operasi gabungan antara tiga jadual Produk, Kategori dan Kategori Produk.

Coretan kod berikut menunjukkan cara untuk mencapai ini:

<code class="language-csharp">var categorizedProducts = product
    .Join(productcategory, p => p.Id, pc => pc.ProdId, (p, pc) => new { p, pc })
    .Join(category, ppc => ppc.pc.CatId, c => c.Id, (ppc, c) => new { ppc, c })
    .Select(m => new { 
        ProdId = m.ppc.p.Id, // 或 m.ppc.pc.ProdId
        CatId = m.c.CatId
        // 其他字段映射
    });</code>

Kod ini mencapai matlamatnya melalui satu siri operasi gabungan:

  1. Sertai jadual Produk dan jadual Kategori Produk berdasarkan syarat p.Id == pc.ProdId.
  2. Sertai hasil gabungan pertama dengan jadual Kategori, syaratnya ialah ppc.pc.CatId == c.Id.
  3. Akhir sekali, tayangkan hasil gabungan kedua ke dalam jenis tanpa nama baharu yang mengandungi medan yang diperlukan oleh kelas CategorizedProducts.

Dengan pendekatan ini, anda boleh menyertai berbilang jadual dengan cekap dan mengekstrak data yang diperlukan ke dalam satu objek.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Gabungan Berbilang Jadual Komprehensif Menggunakan LINQ Lambda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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