ASP.NET Core Entity Framework SELECT с несколькими SUM [дубликаты]

Как вернуть несколько сумм в виде строки JSON с помощью ASP.NET Core API?

Модель:

public class PriceSum
{
   public int sum1 {get;set;}
   public int sum2 {get;set;}
   public int sum3 {get;set;}
}

Обычный T-SQL:

SELECT 
    SUM(field1) AS sum1, 
    SUM(field2) AS sum2, 
    SUM(field3) AS sum3 
FROM 
    Prices 
WHERE 
    ProdId = Id

Контроллер API:

[HttpGet("pricesums/{id}")]
public IEnumerable<PriceSum> GetSums(int id)
{
    return _context.DbPriceSums
                   .Where(p => p.Id == id)
                   .Sum(p => p.field1).ToList();
}

Мое возвращение должно выглядеть так

[
   { "sum1":1000, "sum2":2000, "sum3":3000 }
]

Я застрял....

Всего 1 ответ


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

[HttpGet("pricesums/{id}")]
public IEnumerable<PriceSum> GetSums(int id)
{
    return _context.DbPriceSums
                   .Where(p => p.Id == id)
                   .Select(x => new PriceSum {
                   sum1 = x.field1.Sum() ,
                   sum2 = x.field2.Sum()  ,
                   sum3 = x.field3.Sum() 
                   }).ToList();
}