如何获得具有相同记录的列的行数

时间:2018-09-19 12:38:30

标签: c# database entity-framework linq

示例表:

Name          Work        City

Bob           Work1       City2
Frank         Work2       City1
Will          Work3       City1
Lisa          Work4       City3
Alex          Work5       City2

我如何使用实体框架找出一个城市中住着多少个名字?

所以我得到的输出是“ 2,2,1”(2 City2、2 city1、1 city3)

2 个答案:

答案 0 :(得分:0)

如果所有表都在同一张表中,那么@CodingYoshi给出的注释是正确的。

但是如果所有表都是不同的表,那么我们需要了解表结构。

您可以通过多种方式进行操作。

  1. 根据条件加入并按表分组。
  2. 获取每条记录并使用for循环计数(不推荐)

答案 1 :(得分:0)

假设数据是您问题中提到的内容,则可以执行以下操作

set.GroupBy(x => x.City)
   .Select(x => new { NamesCount = x.Distinct().Count(), City = x.Key })

如果您使用的是linq-to-sql,则需要在ToList之前添加Select

set.GroupBy(x => x.City)
   .ToList()
   .Select(x => new { NamesCount = x.Distinct().Count(), City = x.Key })