Я намагаюся виконати об'єднання між кількома таблицями в 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 });
як я можу досягти цієї мети?