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}
producproductcategoryが次のタイプの場合:
ProductProductCategoryClass {product, productcategory}
結合された「テーブル」の場所がわかりません。関係するクラスのすべてのプロパティを含む単一のクラスを期待していました。
私の目的は、クエリの結果として得られたいくつかのプロパティを別のオブジェクトに入力することです。
CategorizedProducts catProducts = query.Select(m => new { m.ProdId = ???, m.CatId = ???, //other assignments });
どうすればこの目標を達成できますか?