在C#EntityFramework中将IEnumerable <t>转换为List <t>时的SQL超时

时间:2018-10-09 11:23:51

标签: c# sql .net entity-framework ienumerable

在2秒钟内,使用以下代码从数据库中提取了大约2800条记录

public IEnumerable<T> ExecWithStoreProcedure(string query, params object[] parameters)
{
        return db.Database.SqlQuery<T>(query, parameters);
}

但是当转换为列表时,会出现Sql Timeout。我在SQL数据库中使用EntityFramework。如何在不到15秒的时间内实现性能。

2 个答案:

答案 0 :(得分:2)

实体框架使用惰性评估,这意味着仅调用SqlQuery实际上并不能执行查询,它只是构建查询。仅当实现IQueryable / IEnumerable时,才执行实际查询。因此,当您调用ToList()时,这就是执行查询的地方。

为什么要变慢-这取决于查询本身。无法从此处的代码中分辨出来。

答案 1 :(得分:0)

尝试在查询命令前使用此方法

this.context.CommandTimeout = 180;