我正在根据同一列中的一个条件计算记录总数,基本上,这是我现在拥有的:

var checkTotal = await _dbRO.AllOpenExceptions
    .Where(x => x.ClientId == _user.ClientId)
    .CountAsync(x => x.ExceptionType == "Check");

var achTotal = await _dbRO.AllOpenExceptions
    .Where(x => x.ClientId == _user.ClientId)
    .CountAsync(x => x.ExceptionType == "ACH");

正如您所看到的,我只需要计算ExceptionType列的"check"与"ACH".有没有办法将这两个独立的查询合并为一个查询?

我try 了GROUP BY WITH SELECT,但无法弄清楚确切的语法.谢谢你的帮助!

推荐答案

你可以用GroupBy美元做到这一点:

var totals = await _dbRO.AllOpenExceptions
    .Where(x => x.ClientId == _user.ClientId)
    .GroupBy(x => 1)
    .Select(g => new 
    { 
        CheckCount = g.Sum(x => x.ExceptionType == "Check" ? 1 : 0), 
        AchCount   = g.Sum(x => x.ExceptionType == "ACH"   ? 1 : 0) 
    )
    .FirstOrDefaultAsync();

var checkTotal = totals?.CheckCount ?? 0;
var achTotal   = totals?.AchCount   ?? 0;

Csharp相关问答推荐

默认的PSHost实现是什么(用于RunspacePool)?

如何在Shell中创建WinUI 3图形界面?

哪个nuget包含SecurityStampValidatorOptions

如何修改中间件或其注册以正确使用作用域服务?

Polly v8—使用PredicateBuilder重试特定的状态代码

REST API端点中异步后台代码执行的类型

Blazor Foreach仅渲染最后一种 colored颜色

在此系统上已禁用获取正在运行的脚本.&在ASP.NET Core Web API中

如何使用.NET6WPF打印车票?

Lambda表达式如何与隐式强制转换一起工作?

LINQ to Entities中的加权平均值

交替的奇数

带有列表参数的表达式树

C#LINQ子字符串

为什么ReadOnlySpan;T&>没有Slice(...)的重载接受Range实例的?

{ or ; expected error如何解决此问题

如何使用EPPlus C#在单个单元格中可视化显示多行文字

如何使用类似于[SELECT*FROM&Q;&Q;WHERE&Q;]SQL查询的System.Data.Entity创建查询?

C#静态抽象属性不能被子接口覆盖

使用本地公共PEM文件加密字符串,使用Azure KayVault中的私钥解密