Проблема с множественной суммой Linq to SQLC#

Место общения программистов C#
Anonymous
Проблема с множественной суммой Linq to 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 ... -sum-issue

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