Преобразование SQL-запроса в Linq, в котором использовалась комплексная сумма с группой по

#c# #linq

#c# #linq

Вопрос:

Вот столбцы моей Service таблицы:

 id serverPlace count  

Вот SQL-запрос, который мне нужно преобразовать в Linq:

 SELECT Service.id,  Service.serverPlace,  sum(Service.count * 12   MONTH(getdate())) AS sum  FROM Service  GROUP BY Service.id, Service.serverPlace;  

Я не знаю, как преобразовать и реализовать sum раздел с помощью Linq.

Комментарии:

1. Это похоже на обычный Linq со списками в памяти или Entity Framework?

2. точно так же, как linq для объектов

3. Значит, Linq переводится на SQL в фоновом режиме?

4. да, он будет преобразован в sql в фоновом режиме

Ответ №1:

Это должно выглядеть так :

 var month = DateTime.Now.Month; var result = await dbContext.Services.GroupBy(r=gt; new { r.Id, r.ServerPlace })  .Select(r=gt; new {  r.Key.Id,  r.Key.ServerPlace,  Sum = r.Sum(q=gt; q.Count*12   month)  }).ToArrayAsync();