Я пытаюсь выполнить Соединение между несколькими таблицами в 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}
Я не понимаю, где объединенная "таблица", я ожидал single class, который содержит все свойства из вовлеченных классов.
Моя цель - заполнить другой объект некоторыми свойствами, полученными в результате запроса:
CategorizedProducts catProducts = query.Select(m => new { m.ProdId = ???, m.CatId = ???, //other assignments });
Как я могу достичь этой цели?