Ste*_*bbi 18 c# sql-server entity-framework
我正在使用Entity Framework来获取表的总行数.我只想要行计数,没有where子句或类似的东西.以下查询有效,但速度很慢.返回计数4475大约需要7秒钟.
我的猜测是它正在迭代整个表,就像IEnumerable.Count()扩展方法的工作方式一样.
有没有办法可以"快速"获得总行数?有没有更好的办法?
public int GetLogCount()
{
using (var context = new my_db_entities(connection_string))
{
return context.Logs.Count();
}
}
Run Code Online (Sandbox Code Playgroud)
您甚至可以使用实体框架触发Raw SQL查询,如下所示:
var sql = "SELECT COUNT(*) FROM dbo.Logs";
var total = context.Database.SqlQuery<int>(sql).Single();
Run Code Online (Sandbox Code Playgroud)