Gunakan ungkapan LINQ Lambda untuk melakukan cantuman berbilang jadual
LINQ membenarkan penggabungan berbilang jadual menggunakan ungkapan lambda. Katakan kita mempunyai tiga kelas:
<code>Product { Id, ProdName, ProdQty } Category { Id, CatName } ProductCategory { ProdId, CatId }</code>
Penggabungan menggunakan ungkapan Lambda
Jadual ini boleh digabungkan menggunakan kod berikut:
<code>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>
Ini akan menjana objek kelas berikut:
<code>QueryClass { productproductcategory, category }</code>
Isi objek baharu
Untuk mengisi objek baharu dengan sifat hasil sambungan, anda boleh menggunakan kaedah Pilih berikut:
<code>var categorizedProducts = query.Select(m => new { ProdId = ???, CatId = ???, // 其他赋值 });</code>
Dapatkan nilai atribut
Harta khusus yang akan diberikan boleh diperolehi daripada objek yang disambungkan seperti berikut:
<code>ProdId = m.ppc.p.Id, // 或 m.ppc.pc.ProdId CatId = m.c.CatId // 其他赋值</code>
Alternatif sintaks pertanyaan
Sebagai alternatif, anda boleh menggunakan sintaks pertanyaan, yang menyediakan pendekatan yang lebih ringkas:
<code>var categorizedProducts = from p in product join pc in productcategory on p.Id equals pc.ProdId join c in category on pc.CatId equals c.Id select new { ProdId = p.Id, // 或 pc.ProdId CatId = c.CatId // 其他赋值 };</code>
Hasil pertanyaan ini adalah sama dengan kaedah ungkapan lambda. Jika kebolehbacaan adalah lebih penting, adalah disyorkan untuk menggunakan sintaks pertanyaan.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Gabungan Jadual Berbilang Menggunakan Ungkapan Lambda LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!