如何在LINQ lambda中的多个表之间执行连接

如何在LINQ lambda中的多个表之间执行连接

我试图在LINQ中的多个表之间执行连接。我有以下课程:

Product {Id, ProdName, ProdQty}Category {Id, CatName}ProductCategory{ProdId, CatId} //association table

我使用以下代码(其中productcategory以及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 });

我怎样才能实现这个目标?


慕田峪7331174
浏览 977回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP