2

我试图在 Linq 的同一查询中获取类别及其项目的列表。诸如类别项目列表和相关产品列表之类的东西。

例如项目列表,如:

Class MyClass {
Category food;
List<Product> products; //here I want to get list of products in this category
}

我有一个连接它们的表,其中包含产品 ID 和类别 ID。

我应该使用哪个查询来获取此结果?


编辑:表格示例:

表:产品

  • 产品编号
  • 产品名称
  • 产品描述
  • 产品内容

表:产品分类

  • 产品编号
  • 类别 ID

表:类别

  • 类别 ID
  • 类别标题
  • 类别描述
4

2 回答 2

1

产品和类别之间存在多对多的关系。在没有显式编码连接的情况下查询此类关系的一种非常方便的方法是:

from c in Categories
select new MyClass { 
    Category = c, 
    Products = c.ProductCategories.Select (pc => pc.Product).ToList()
}
于 2012-07-28T14:10:12.797 回答
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 };
于 2012-07-26T23:08:35.060 回答