我试图执行一个LINQ中的多个表之间的连接。我有以下类:如何执行LINQ lambda中的多个表之间的连接
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 });
我怎样才能实现这一目标?
我不明白...为什么** m.ProdId = ** **而不是** prodId = m.ProdId **? – 2012-03-15 13:03:12
因为我不知道如何导航和获得产品 – CiccioMiami 2012-03-15 13:16:27