【发布时间】:2019-02-13 00:34:01
【问题描述】:
我有两张表,一张用于categories,一张用于products
它们的定义如下:
public class Product
{
public int ProductID{get;set;}
public string ProductName{get;set;}
public int CompanyID{get;set;}
public int CategoryID{get;set;}
}
public class Category
{
public int CategoryID{get;set;}
public string CategoryName{get;set;}
}
两个表在 CategoryID 上连接
我正在尝试获取类别列表,其中包含有多少公司生产该类别产品的计数
所以这不是按类别计算多少产品,而是有多少不同的公司为每个类别生产产品。
我已尝试使用此查询,但无法正确处理:
var query =
from c in categories
join p in products on c.CategoryID equals p.CategoryID
group c by new {c.CategoryName,p.CompanyID} into cg
select new
{
CatName = cg.Key.CategoryName,
Count = cg.Count()
};
我在这里准备了一个带有示例数据的小提琴:
https://dotnetfiddle.net/WHwNFk
小提琴中的结果应该是:A=2,B=2,C=2(因此对于每个类别,有 2 家不同的公司生产该类别的产品)
【问题讨论】: