Entity Framework Группировка данных - PullRequest
0 голосов
/ 17 января 2019

В моей базе данных я могу запустить следующую команду:

SELECT Distinct ApprovalStatus,  Id,  COUNT (ApprovalStatus) total
from dbo.DummyTable
WHERE Id!= 0
group by ApprovalStatus, Id

И сгенерирует это:

ApprovalStatus | Id | Count
---------------|----|-------
Approved       | 47 | 1423
Pending        | 47 | 4
Approved       | 46 | 1685
Pending        | 46 | 47

Я хочу того же в моем проекте. Сначала я возвращаю все из своей базы данных с помощью простой логики Entity Framework.

Теперь, когда у меня есть данные, я пытаюсь разделить их, пытаясь преобразовать код SQL в лямбда-выражение. Вот что у меня есть:

var count = data.GroupBy(d => d.Id)
            .Select(x => new
            {
               ID = x.Select(x=>x.Id.ToString()),
               Count = x.Select(x => x.ApprovalStatus == "Pending").Count()
            }); 

Я борюсь с тем, чтобы заставить мой код выводить данные аналогично тому, как это делается в SQL. Как в какой-то момент я хочу отобразить данные на веб-странице.

1 Ответ

0 голосов
/ 17 января 2019

Вы могли бы сделать это

var results = data.GroupBy(x => new { x.ApprovalStatus, x.Id })
                  .Select(x => new
                         {
                            ApprovalStatus = x.Key.ApprovalStatus,
                            Id = x.Key.Id,
                            Count = x.Count()
                         });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...