2012-07-26 80 views
1

我试图在Linq中的相同查询中获取类别列表和他们的项目。 类似于类别项目清单和相关产品清单。获取类别和此类别中的项目列表

像项目的示例列表:

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

而且我有他们之间的连接包含产品ID和类别ID表。

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


编辑:示例的表:

表:产品

  • 的productId
  • PRODUCTNAME
  • productDesc
  • productContent

表:ProductsCategories

  • 的productId
  • 的categoryId

表:类别

  • 的categoryId
  • categoryTitle
  • categoryDe​​sc

回答

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 }; 
+0

问题是没有办法在没有连接它们的表的情况下获得产品的类别标识。我认为需要加入,但是我找不到这样做的方法...... – David 2012-07-26 23:22:41

+0

如果您想要加入表格的帮助,则需要告诉我们关于需要帮助的表格的一些信息。向我们展示您的表格模式。 – dthorpe 2012-07-26 23:54:56

+0

我添加了表格的例子。我希望这将有所帮助。 – David 2012-07-28 14:22:03

0

有产品和类别之间的许多一对多的关系。没有明确编码的连接查询这种关系的一种非常便利的方式是:

from c in Categories 
select new MyClass { 
    Category = c, 
    Products = c.ProductCategories.Select (pc => pc.Product).ToList() 
} 
相关问题