gpt4 book ai didi

c# - Entity Framework 使用单个查询进行多次计数

转载 作者:行者123 更新时间:2023-12-04 01:57:35 24 4
gpt4 key购买 nike

抱歉,如果有人问过这个问题,但是我如何通过一次调用数据库来改进以下内容?

var statsModel = new
{
Total = _db.Messages.Count(),
Approved = _db.Messages.Count(x => x.Approved),
Rejected = _db.Messages.Count(x => !x.Approved),
};

最佳答案

首先你可以计算Rejected通过总计和接受这样的:

Rejected = Total - Approved

为了进一步改进,您可以一次性计算它们;
from m in _db.Messages
let Total = _db.Messages.Count()
let Accept = _db.Messages.Count(x => x.Approved == true)
select new {Total , Accept})

更新:
现在一个简单的黑客:只需要第一行
(from m in _db.Messages
let Total = _db.Messages.Count()
let Accept = _db.Messages.Count(x => x.Approved == true)
select new {Total , Accept}).Take(1);

但我正在寻找一个更干净的

关于c# - Entity Framework 使用单个查询进行多次计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8894684/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com