Преобразовать SQL-запрос в выражение linq / lambda с суммой и сгруппировать по условию - PullRequest
0 голосов
/ 11 мая 2019

У меня есть текущий код ниже, чтобы перечислить элементы из представления БД

var transTixList = await dbContext.vwTPACnxes.ToListAsync();

Которые имеют выход:

TransactionId   ForDate         OnHour      Totals
73289           2019-05-04      10          1
45318           2019-05-05      11          1
65261           2019-05-05      11          1
69131           2019-05-04      11          2
49696           2019-05-05      12          2
69373           2019-05-05      10          2
63965           2019-05-04      14          2
67963           2019-05-05      11          1
46774           2019-05-05      10          1
53125           2019-05-05      14          2

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

SELECT 
    SUM(Totals) AS Summary
    ,[ForDate]
    ,[OnHour]
FROM [somedb].[dbo].[vwTPACnx]
GROUP BY OnHour, ForDate

Summary ForDate     OnHour
1383    2019-05-05  11
1163    2019-05-04  12
1301    2019-05-05  12
 918    2019-05-04  13
 692    2019-05-05  13
 611    2019-05-04  14
 667    2019-05-05  14

Какое решение лучше всего изменить в моем существующем коде, чтобы получить такой вывод?

1 Ответ

0 голосов
/ 11 мая 2019

Попробуйте это:

var transTixList = dbContext.vwTPACnxes
                    .GroupBy (s => new {s.ForDate, s.OnHour} )
                    .Select (g => new 
                                     {
                                       ForDate = g.Key.ForDate,
                                       OnHour = g.Key.OnHour,
                                       Summary = g.Sum(x => x.Totals),
                                     } 
                             ).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...