我试图通过组类别;Linq的分组问题
让我们说,我有一个名为两个表如下:
Products
,ProductTypes
var foo = (from products in context.PRODUCTS
join producttype in context.PRODUCTTYPE
group producttype by new {producttype.name, producttype.producttypeid, products.productid} into g
select new
{
ProductName = g.Key.name,
ProductID = g.Key.producttypeid,
NumItems = g.Distinct().Count()
});
这里的样本数据
Product (productId, Name, ProductTypeID)
-------
1 ProductA 1
2 ProductB 1
3 ProductC 2
4 ProductD 3
ProductType (ProductTypeID, Name)
-----------
1 CategoryA
2 CategoryB
3 CategoryC
ProductSubType (ProductSubtypeID, Name, ProductID)
--------------
1 ProductSubType1 1
2 ProductSubType2 1
3 ProductSubType3 2
4 ProductSubType4 2
5 ProductSubType5 2
6 ProductSubType6 2
7 ProductSubType7 3
我的结果如下
CategoryA 1
CategoryA 1
CategoryB 1
CategoryC 1
我期待的结果是
CategoryA 2
CategoryB 1
CategoryC 1
这是正确的,除了CategoryA
应该显示为CategoryA 2
。
我不知道有什么简单的语法,我在这里失踪?
在此先感谢。
你们为何products.productid加入? Products表中是否有多个productID? – Thea 2011-02-24 18:58:57
我通过productid加入到其他需要过滤初始结果(活动状态,价格等)的表格中。 Products表中不超过1个productID。 – dave2118 2011-02-24 19:52:18
所以,你应该从小组陈述 – Thea 2011-02-25 12:57:17