在2秒钟内,使用以下代码从数据库中提取了大约2800条记录
public IEnumerable<T> ExecWithStoreProcedure(string query, params object[] parameters)
{
return db.Database.SqlQuery<T>(query, parameters);
}
但是当转换为列表时,会出现Sql Timeout。我在SQL数据库中使用EntityFramework。如何在不到15秒的时间内实现性能。
答案 0 :(得分:2)
实体框架使用惰性评估,这意味着仅调用SqlQuery
实际上并不能执行查询,它只是构建查询。仅当实现IQueryable / IEnumerable时,才执行实际查询。因此,当您调用ToList()时,这就是执行查询的地方。
为什么要变慢-这取决于查询本身。无法从此处的代码中分辨出来。
答案 1 :(得分:0)
尝试在查询命令前使用此方法
this.context.CommandTimeout = 180;