4

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

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

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

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

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

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

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

  • Error: User Rate Limit Exceeded

    от SeToY
  • Error: User Rate Limit Exceeded

    от SeToY
  • Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit ExceededdateError: User Rate Limit Exceededa.ResolvedDate.Date

    от
  • Error: User Rate Limit Exceeded

    от SeToY
  • 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

    от
  • Error: User Rate Limit Exceeded

    от SeToY
  • Error: User Rate Limit Exceededgroup a by a.ResolvedDate.Date into g

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

    от John Boker
  • 18

    Code:

    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()}
    

  • 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);
    

  • 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() });
    

  • 6

    Вы должны сгруппировать свои данные по ResolvedDate

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

    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() }