Множественная проблема SUM с EF SQLC#

Место общения программистов C#
Ответить
Anonymous
 Множественная проблема SUM с EF SQL

Сообщение Anonymous »

Я пытаюсь использовать Linq для создания такой команды SQL

Код: Выделить всё

return await query.GroupBy(x => new
{
Id = x.xId,
Date = x.Date
})
.Select(x => new OutputClass(x.Key.Id,
x.Key.Date,
x.Sum(g => g.Tot.Value),
x.Sum(g => g.Table1.Table2.Ind ? g.Tot.Value : 0),
x.Sum(g => g.Table1.Table2.War ? g.Tot.Value : 0),
x.Sum(g => g.Table1.Table2.Non ? g.Tot.Value : 0)
)
)
.ToListAsync();
Ожидаемый результат примерно такой:

Код: Выделить всё

SELECT
SUM(...),
SUM(CASE WHEN ...),
SUM(CASE WHEN ...),
SUM(CASE WHEN ...)
FROM
однако преобразование в SQL представляет собой объединение нескольких SUM, повторяющих один и тот же запрос.
Конечно, производительность — это катастрофа. Я пытался поместить Select перед GroupBy, но это не помогло.
Есть идеи, чтобы выполнить все в базе данных (а не в памяти), не использовать чистый SQL и избегать создания представления?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ith-ef-sql
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»