获取此类别中的类别和项目列表

时间:2012-07-26 23:05:59

标签: c# linq sql-server-2008 c#-4.0 linq-to-sql

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

例如:

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

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

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


编辑:表格示例:

表:产品

  • 的productId
  • 产品名称
  • productDesc
  • productContent

表:ProductsCategories

  • 的productId
  • 的categoryId

表:类别

  • 的categoryId
  • categoryTitle
  • categoryDe​​sc

2 个答案:

答案 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()
}