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:
Id
, ProdName
, ProdQty
Id
, CatName
ProdId
, CatId
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!