我正在尝试在 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 });
我怎样才能达到这个目标?