关于ASP.NET MVC:提高多重计数的效率

Improving efficiency of multiple Counts

我的问题是关于MVC中查询和计数的"最佳实践"和/或"提高效率"。让我从给出场景开始。在我的数据库中,我有一个对象表,其中包含类型A、B或C以及状态1、2、3或4的对象。在我的应用程序的首页,我显示了不同状态的不同对象的数量(对象A状态1:22,对象A状态2:35,……等)

现在我要做的是进行一个查询,首先查找所有类型为A的对象,然后将其设置为一个变量。然后我做了类似的事情:每个状态下的variable.Where(x => x.status = 1).Count()。这确实给了我想要的和需要的,但是你可以想象,这不是最有效的方法,而且有大量的记录,这将花费相当多的时间。

现在我的问题是:如何改进我的代码,以便在最短的时间内获得不同状态的计数?

非常感谢你的回答!


至少应该将Count与谓词Count(x => x.status == 1)一起使用。这个重载函数不从数据库加载实体,只在数据库端用有效的SQL查询对其进行计数。