我的数据库中有 2 个单独的表格,用于客户及其相关种族。客户表包含种族的外键 ID。我想创建一个 Linq 查询,显示每个种族的总数以用于报告目的。例如像......
+------------+------------------+
| Ethnicity | Customer Count |
+------------+------------------+
| White | 100 |
+------------+------------------+
| Black | 50 |
+------------+------------------+
| Chinese | 20 |
+------------+------------------+ etc...
到目前为止,我有以下两个 LINQ 查询:
var customers = repository.GetAll<Customer>();
var ethnicities = repository.GetAll<Ethnicity>();
var query1 = customers.GroupBy(c => c.EthnicityId).Select(g => new { Key = g.Key, Count = g.Count() });
查询 1 显示总数,但使用种族 ID 而不是文本 (EthnicityType)。
var query2 = from c in customers
join e in ethnicities on c.EthnicityId equals e.Id
where (c.EthnicityId == e.Id)
select new { Ethnicity = e.EthnicityType, Count = ??? };
查询 2 连接了这两个表,但是如何对它进行分组以便获得总计而不是单个记录?希望这是有道理的,不胜感激。