Как получить количество строк, в которых один из столбцов одинаков? - PullRequest
0 голосов
/ 17 сентября 2018

Во-первых, извините за плохой заголовок, я действительно не знаю, как это называется.

Я знаю, что могу использовать context.Model.Where(a => a.Entity == "example").Count().Но я хочу что-то более общее, где я могу подсчитать, сколько строк имеют одну и ту же запись в одном из столбцов.Изображение того, что я имею в виду: enter image description here

Мой конечный результат, который я хочу получить, это список подсчета, например: 3, 1 и т. Д.

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Вы можете использовать оператор GroupBy для этого, чтобы сгруппировать по значению ваши элементы, а затем Select требуемый результат:

var result = await db.Model
        .GroupBy(x => x.Age)
        .Select(g => new {
            Age = g.Key, 
            Count = g.Count(),
        })
        .ToListAsync();

Результатом является список объектов, которые имеют свойство Age со значением возраста, и свойство Count с количеством элементов, которые имеют это значение Age.

Example result

Если вам просто нужны значения, вы можете просто вернуть их из выражения Select напрямую:

var result = await db.Model
        .GroupBy(x => x.Age)
        .Select(g => g.Count())
        .ToListAsync();

Обратите внимание, что это, очевидно, помешает вам сказать, какой возраст представляет индивидуальный счет.

0 голосов
/ 17 сентября 2018

Попробуйте использовать метод distinct и получите как анонимный объект, затем примените к нему count

context.Model.Where(a => a.Entity == "example").Select(a = > new {a.User, a.Address, a.Age}).Distinct().Count()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...