【问题标题】:How to use linq group with count and return ToListAsync to front end如何使用带有计数的 linq 组并将 ToListAsync 返回到前端
【发布时间】:2020-08-26 10:17:51
【问题描述】:

这是我的代码。 ToListAsync返回前端后,我需要使用linq组和计数。 但是我得到了像这张图片这样的错误 我该如何解决?

    public async Task<List<Product>> GetDataChart()
    {
        var data = await dbMLIMPORT.Product
                    .GroupBy(g => new { g.CMID, g.SUB_CODE })
                    .Select(s => new
                    {
                        CMID = s.Key.CMID,
                        SUB_CODE = s.Key.SUB_CODE,
                        COUNT = s.Sum(x => x.PRODUCT_ID.Length > 0 ? 1 : 0)
                    }).ToListAsync();
        return data;
    }

【问题讨论】:

  • 嗨@GPService,如果我的回答帮助您解决了您的错误,那么请接受我的回答并投赞成票。谢谢!

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


【解决方案1】:

您需要创建一个新类 ProductInfo返回 ProductInfo 列表而不是 Products 列表。目前,您正在选择查询中创建匿名类型并返回相同的类型,这将产生此错误。 希望能解决你的问题。

public class ProductInfo
{
    public string CMID {get; set;}
    public string SUB_CODE {get; set;}
    public int COUNT {get; set;}
}

public async Task<List<ProductInfo>> GetDataChart()
{
    var data = await dbMLIMPORT.Product
                .GroupBy(g => new { g.CMID, g.SUB_CODE })
                .Select(s => new ProductInfo
                {
                    CMID = s.Key.CMID,
                    SUB_CODE = s.Key.SUB_CODE,
                    COUNT = s.Sum(x => x.PRODUCT_ID.Length > 0 ? 1 : 0)
                }).ToListAsync();
    return data;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 2020-03-30
    • 2020-10-28
    相关资源
    最近更新 更多