LINQ'da birden çok tablo arasında bir Birleştirme gerçekleştirmeye çalışıyorum . Aşağıdaki sınıflarım var:
Product {Id, ProdName, ProdQty}
Category {Id, CatName}
ProductCategory{ProdId, CatId} //association table
Ve aşağıdaki koduyla (burada product
, category
ve productcategory
yukarıda belirtilen sınıfların örnekleri olan):
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});
Bu kodla aşağıdaki sınıftan bir nesne elde ediyorum:
QueryClass { productproductcategory, category}
Ürün kategorisinin türü olduğunda:
ProductProductCategoryClass {product, productcategory}
Birleştirilen "tablonun" nerede olduğunu anlamıyorum , ilgili sınıfların tüm özelliklerini içeren tek bir sınıf bekliyordum .
Amacım, sorgudan kaynaklanan bazı özelliklerle başka bir nesneyi doldurmak:
CategorizedProducts catProducts = query.Select(m => new { m.ProdId = ???, m.CatId = ???, //other assignments });
bu hedefe nasıl ulaşabilirim?