Вопрос по .net, linq, c# – Выбор количества в LINQ

4

Я получил таблицу SQL Server со столбцамиResolvedDate а такжеResolvedBy.

Теперь я хочу выбрать эти два столбца и посчитать их результаты, которые, как я думал, я бы реализовал следующим образом:

_dataContext.Activities
    .Where(a => a.IsResolved && a.ResolvedBy == userId)
    .Select(a => new { a.ResolvedDate, ***COUNT*** });

Как вы можете видеть, счетная часть отсутствует.

Я хочу получить все действия, которые были выполнены в этой ResolvedDate и посчитать их.

Как я могу это реализовать?

так что вы хотите сгруппировать по разрешенной дате, а затем сделать подсчет John Boker

Ваш Ответ

4   ответа
6

чтобы получить число действий, решаемых каждый день.

var dates = from a in dataContext.Activities
            where a.IsResolved && a.ResolvedBy == userId
            group a by a.ResolvedDate into g
            select new { Date = g.Key, Count = g.Count() }

Для группировки по дням (без часов, минут и т. Д.) Вы можете изменить оператор группы:

var dates = from a in dataContext.Activities
            where a.IsResolved && a.ResolvedBy == userId
            group a by a.ResolvedDate.Date into g
            select new { Date = g.Key, Count = g.Count() }
Error: User Rate Limit Exceeded SeToY
18
from a in dataContext.Activities
where a.IsResolved && a.ResolvedBy == userId
group a by a.ResolvedDate into g
select new {ResolvedOn=g.Key, NumberResolved= g.Count()}
Error: User Rate Limit Exceeded SeToY
Error: User Rate Limit ExceededdateError: User Rate Limit Exceededa.ResolvedDate.Date
Error: User Rate Limit Exceeded SeToY
Error: User Rate Limit Exceededgroup a by a.ResolvedDate.Date into g
Error: User Rate Limit Exceeded SeToY
3
var dates = dataContext.Activities
    .Where(a => a.IsResolved && a.ResolvedBy == userId)
    .Select(a => a.ResolvedDate)
    .ToList();

var count = dates.Count;

вы можете сделать это намного быстрее, выбрав только счет:

var count = dataContext.Activities
    .Count(a => a.IsResolved && a.ResolvedBy == userId);
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededvar count = dataContext.Activities .Count(a => a.IsResolved && a.ResolvedBy == userId);Error: User Rate Limit Exceededselect count(CoulmnName) from [TableName] Where (IsResolved=1) and ([email protected])?
Error: User Rate Limit Exceeded
9

вам необходимо использоватьGroupBy:

var countsByDate = _dateContext.Activities
                           .Where(a => a.IsResolved && a.ResolvedBy == userId)
                           .GroupBy(a => a.ResolvedDate)
                           .Select(g => new {ResolvedDate = g.Key, Count = g.Count() });

Похожие вопросы