【问题标题】:ASP.NET Core Entity Framework SELECT with multiple SUM [duplicate]具有多个 SUM 的 ASP.NET Core Entity Framework SELECT [重复]
【发布时间】:2020-07-04 16:14:07
【问题描述】:

如何使用 ASP.NET Core API 将多个 SUM 作为 JSON 字符串返回?

型号:

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 }
]

我被困住了……

【问题讨论】:

  • 我从那个线程中找到了这个,但是我该如何运行它呢?从 p in m.Items group p by 1 into g select new { SumTotal = g.Sum(x => x.Total), SumDone = g.Sum(x => x.Done) }; _context.DbPriceSums 然后????

标签: asp.net-core asp.net-web-api


【解决方案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();
}

【讨论】:

  • 我得到错误 CS1929 'int' 不包含 'Sum' 的定义,并且最佳扩展方法重载 'ParallelEnumerable.Sum(ParallelQuery)' 需要类型为 'ParallelQuery'
猜你喜欢
  • 1970-01-01
  • 2021-09-02
  • 1970-01-01
  • 2019-02-23
  • 2022-01-21
  • 2017-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多