public List<Employee> GetEmployees(){
     var employee = new ApplicationDBContext().Employee;

     return employee.ToList();
}

//somewhere in other part of code.
//Use GetEmployees.
var employees = GetEmployees();
var importantEmployees = employees.Where(e => e.IsImportant == true);


在性能方面,这种方法可行吗?
有什么解决方案可以使其快速运行吗?
谢谢!

最佳答案

一旦GetEmployees()执行ToList(),就会从数据库中检索所有记录,而不仅仅是“重要”记录。到以后再执行Where子句时,已经太晚了。

创建另一个方法,在调用Where之前使用ToList()进行过滤。

public List<Employee> GetImportantEmployees()
{
    var employee = new ApplicationDBContext().Employee;

    return employee.Where(e => e.IsImportant).ToList();
}


除此之外,我不确定您还可以采取什么措施来提高C#代码的速度。如果只需要一部分“重要”雇员(在致电ToList()之前),请应用更多过滤器。

关于c# - Entity Framework .ToList()慢吗? (查询全部),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30250303/

10-13 08:13