You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#异步方法中返回枚举与计数映射的StatusCount列表

解决方案

首先修正代码中的变量名错误(第三个查询重复命名为query2,需改为query3),同时为契合异步方法规范,将同步的Count()替换为EF Core的异步方法CountAsync(),最后直接构建List<StatusCount>完成枚举与计数的一一映射:

public class StatusCount
{
    public string Status { get; set; }
    public int Count { get; set; }
}

public enum myEnum {
    A,
    B,
    C
}

public async Task<List<StatusCount>> GetStatusCount()
{
    // 修正变量名并使用异步计数方法
    var query1 = await _dbcontext.Table1.Include(t => t.RelatedEntity).Where(t => t.Condition).CountAsync();//10
    var query2 = await _dbcontext.Table2.Include(t => t.RelatedEntity).Where(t => t.Condition).CountAsync();//5
    var query3 = await _dbcontext.Table3.Include(t => t.RelatedEntity).Where(t => t.Condition).CountAsync();//15

    // 映射枚举与对应计数,生成目标列表
    return new List<StatusCount>
    {
        new StatusCount { Status = nameof(myEnum.A), Count = query1 },
        new StatusCount { Status = nameof(myEnum.B), Count = query2 },
        new StatusCount { Status = nameof(myEnum.C), Count = query3 }
    };
}

关键说明

  • 用nameof(myEnum.A)获取枚举字符串名称,避免硬编码字符串引发的维护问题
  • 异步方法中必须通过await调用异步数据库操作,保证非阻塞执行
  • 返回的列表结构完全匹配你需要的JSON输出格式

内容的提问来源于stack exchange,提问作者user2580179

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 14:01:27