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
Lepaskan: 2025-01-10 11:29:43
asal
685 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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