Linq к SQL-оператору для нескольких итоговых значений в отдельном выражении

Как я записал бы Linq к SQL-оператору для следующего TSQL?

select 
  count(*),
  sum(Amount),
  avg(Amount),
  min(Amount),
  max(Amount) 
from 
  TableName
7
задан Drew Noakes 13 December 2010 в 17:37
поделиться

2 ответа

Вы можете сделать:

var result = new
{
    Count = db.TableName.Count(),
    Sum = db.TableName.Sum(r => r.Amount),
    Average = db.TableName.Avg(r => r.Amount),
    Min = sb.TableName.Min(r => r.Amount),
    Max = db.TableName.Max(r => r.Amount)        
}
2
ответ дан 7 December 2019 в 07:41
поделиться

Вероятно, проще получить значения по отдельности, но вы можете использовать анонимный тип.

var aggregates = new {
Count = context.TableName.Count(),
Sum = context.TableName.Sum(t => t.Amount),
Avg = context.TableName.Avg(t => t.Amount),
Min = context.TableName.Min(t => t.Amount),
Max = context.TableName.Max(t => t.Amount)
};
1
ответ дан 7 December 2019 в 07:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: