Помогите преобразовать оператор SQL в LINQ Lambda (нужна помощь с группировкой и суммой) - PullRequest
1 голос
/ 08 сентября 2011

Вот инструкция для преобразования в LINQ to SQL (лямбда, пожалуйста)

ВЫБРАТЬ [Дата], СУММА (считается) [Подсчитано], СУММА (Время) [Время] FROM dbo.TableName GROUP BY [Дата]

Это необработанные данные без группировки и суммы

Date                    Counted Time
2011-09-07 00:00:00.000 34      31
2011-09-07 00:00:00.000 6       3
2011-09-07 00:00:00.000 7       3
2011-09-07 00:00:00.000 6       2
2011-09-07 00:00:00.000 7       2
2011-09-07 00:00:00.000 19      4
2011-09-07 00:00:00.000 13      4
2011-09-07 00:00:00.000 11      4
2011-09-07 00:00:00.000 14      3
2011-09-07 00:00:00.000 0.75    3

Это результаты после применения групп и сумм

Date                    Counted Time
2011-09-07 00:00:00.000 117.75  59

Это то, что я имею до сих пор, но я очень растерялся, когда дело доходит до группы и суммирования. Очевидно, мой синтаксис далеко не так.

var q = context.TableName.Where(...)
               .GroupBy(x => new { x.Date})
               .Sum(x => x.Counted, x.Time????)
               .Select(x => x.Date, x.Counted, x.Time;

Ответы [ 2 ]

6 голосов
/ 08 сентября 2011
var q = context.TableName
           .GroupBy(x => x.Date)
           .Select(g => new { 
               Date = g.Key,
               Counted = g.Sum(x => x.Counted), 
               Time = g.Sum(x => x.Time)
           });
0 голосов
/ 08 сентября 2011

Как насчет метода расширения usng Sum ():

var query = table.AsEnumerable().Select(s => s.Field<int>("counted")).Sum();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...