如何在LINQ lambda中的多个表之间执行连接
我试图在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}
producproductcategory的类型是:
ProductProductCategoryClass {product, productcategory}
我不明白加入的“表”在哪里,我期待一个包含所涉及类的所有属性的单个类。
我的目标是使用查询产生的一些属性填充另一个对象:
CategorizedProducts catProducts = query.Select(m => new { m.ProdId = ???, m.CatId = ???, //other assignments });
我怎样才能实现这个目标?
相关分类