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