Próbuję wykonać sprzężenie między wieloma tabelami w LINQ. Mam następujące zajęcia:
Product {Id, ProdName, ProdQty}
Category {Id, CatName}
ProductCategory{ProdId, CatId} //association table
I użyć kodu następujące (gdzie product
, category
i productcategory
są przypadki powyższych zajęć):
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});
Za pomocą tego kodu otrzymuję obiekt z następującej klasy:
QueryClass { productproductcategory, category}
W przypadku gdy kategoria produktów jest typu:
ProductProductCategoryClass {product, productcategory}
Nie rozumiem, gdzie jest połączona „tabela”, spodziewałem się pojedynczej klasy zawierającej wszystkie właściwości z zaangażowanych klas.
Moim celem jest wypełnienie innego obiektu niektórymi właściwościami wynikającymi z zapytania:
CategorizedProducts catProducts = query.Select(m => new { m.ProdId = ???, m.CatId = ???, //other assignments });
jak mogę osiągnąć ten cel?