Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Ungkapan Lambda LINQ Boleh Digunakan untuk Melaksanakan Cantuman Berbilang Meja dengan Cekap?

Bagaimanakah Ungkapan Lambda LINQ Boleh Digunakan untuk Melaksanakan Cantuman Berbilang Meja dengan Cekap?

Patricia Arquette
Patricia Arquetteasal
2025-01-10 11:29:43751semak imbas

How Can LINQ Lambda Expressions Be Used to Efficiently Perform Multi-Table Joins?

Menguasai Gabungan Berbilang Jadual dengan LINQ Lambda Expressions

LINQ (Language Integrated Query) menawarkan cara yang berkuasa dan cekap untuk berinteraksi dengan pangkalan data. Tugas yang kerap dalam pengambilan data melibatkan penggabungan berbilang jadual. Panduan ini menunjukkan cara melaksanakan cantuman ini dengan berkesan menggunakan ungkapan lambda LINQ.

Mari kita pertimbangkan tiga contoh kelas yang mewakili jadual pangkalan data:

  • Produk: Id, ProdName, ProdQty
  • Kategori: Id, CatName
  • Kategori Produk: (jadual simpang) ProdId, CatId
Kaedah

LINQ Join memudahkan untuk menyertai jadual ini. Berikut ialah contoh:

<code class="language-csharp">var query = product.Join(productcategory, p => p.Id, pc => pc.ProdID, (p, pc) => new { product = p, productcategory = pc })
               .Join(category, ppc => ppc.productcategory.CatId, c => c.Id, (ppc, c) => new { productproductcategory = ppc, category = c });</code>

Kod ini bergabung dengan Product, ProductCategory dan Category berdasarkan lajur Id dan CatId masing-masing. Walau bagaimanapun, hasilnya ialah objek bersarang.

Untuk mencipta hasil yang lebih diperkemas, satu objek yang mengandungi semua sifat yang berkaitan, gunakan kaedah Select:

<code class="language-csharp">var categorizedProducts = query.Select(m => new { m.ProdId = ???, m.CatId = ???, //other assignments });</code>

Berikut ialah cara untuk menetapkan sifat dengan betul daripada jadual yang dicantumkan kepada objek baharu ini:

<code class="language-csharp">var categorizedProducts = query.Select(m => new {
    ProdId = m.productproductcategory.product.Id, // or m.productproductcategory.productcategory.ProdId
    CatId = m.category.Id,
    // other property assignments from m.productproductcategory.product, m.productproductcategory.productcategory, and m.category
});</code>

Pendekatan ini, menggabungkan ungkapan lambda LINQ dengan Join dan Select, menyediakan kaedah yang cekap untuk cantuman berbilang jadual, menghasilkan objek tunggal yang mudah diurus yang mengandungi semua data yang diperlukan.

Atas ialah kandungan terperinci Bagaimanakah Ungkapan Lambda LINQ Boleh Digunakan untuk Melaksanakan Cantuman Berbilang Meja dengan Cekap?. 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