ฉันพยายามทำการเข้าร่วมระหว่างหลาย ๆ ตารางใน LINQ ฉันมีชั้นเรียนต่อไปนี้:
Product {Id, ProdName, ProdQty}
Category {Id, CatName}
ProductCategory{ProdId, CatId} //association table
และฉันจะใช้รหัสต่อไปนี้ (ที่product
, category
และproductcategory
กรณีของการเรียนข้างต้น):
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});
ด้วยรหัสนี้ฉันได้รับวัตถุจากคลาสต่อไปนี้:
QueryClass { productproductcategory, category}
โดยที่ประเภทผลิตภัณฑ์ผลิตภัณฑ์เป็นประเภท:
ProductProductCategoryClass {product, productcategory}
ฉันไม่เข้าใจว่า "ตาราง" ที่เข้าร่วมอยู่ที่ไหนฉันคาดหวังว่าจะมีคลาสเดียวที่มีคุณสมบัติทั้งหมดจากคลาสที่เกี่ยวข้อง
เป้าหมายของฉันคือเติมข้อมูลวัตถุอื่นด้วยคุณสมบัติบางอย่างที่เป็นผลมาจากการสืบค้น
CategorizedProducts catProducts = query.Select(m => new { m.ProdId = ???, m.CatId = ???, //other assignments });
ฉันจะบรรลุเป้าหมายนี้ได้อย่างไร