我试图在Linq的同一查询中获取类别及其项目的列表。 类似项目列表和相关产品列表。
例如:
等项目列表Class MyClass {
Category food;
List<Product> products; //here I want to get list of products in this category
}
我有一个连接它们的表,其中包含产品ID和类别ID。
我应该使用哪个查询来获得此结果?
编辑:表格示例:
表:产品
表:ProductsCategories
表:类别
答案 0 :(得分:0)
尝试这样的事情:(未经测试)
var q = from pc in ProductsCategories
from cat in Categories
where pc.productId == cat.categoryId
from prod in Products
where prod.productId == pc.productId
select new { category = cat, product = prod };
var q2 = from product in q
group product by product.categoryId into g
select new { categoryId = g.Key, products = g };
答案 1 :(得分:0)
产品和类别之间存在多对多关系。在没有显式编码连接的情况下查询此类关系的一种非常方便的方法是:
from c in Categories
select new MyClass {
Category = c,
Products = c.ProductCategories.Select (pc => pc.Product).ToList()
}