我试图在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 });
我怎样才能实现这个目标?