实体框架多个计数与一个查询 [英] Entity Framework multiple counts with a single query
本文介绍了实体框架多个计数与一个查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
对不起,如果这是被问到,但是如何通过单次调用数据库来改善以下内容?
Sorry if this has been asked, but how can I improve the following with a single call to the database?
var statsModel = new
{
Total = _db.Messages.Count(),
Approved = _db.Messages.Count(x => x.Approved),
Rejected = _db.Messages.Count(x => !x.Approved),
};
推荐答案
首先您可以计算被拒绝
按总计和接受如下:
First of all you can compute the Rejected
by Total and Accepted like this:
Rejected = Total - Approved
为进一步改进,您可以一次计算两者;
And for further improvement you can compute both of them in one shot;
from m in _db.Messages
let Total = _db.Messages.Count()
let Accept = _db.Messages.Count(x => x.Approved == true)
select new {Total , Accept})
更新:
a现在简单的黑客:只需拿第一行
UPDATE: a simple hack for now : just take the first row
(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);
但我正在寻找一个更干净的一个
But I'm looking for a cleaner one
这篇关于实体框架多个计数与一个查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文