我試圖執行一個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