实体框架.ToList()很慢? (全部查询)

时间:2015-05-15 01:55:29

标签: c# entity-framework dbcontext

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);

在性能方面,这种方法可行吗? 有没有解决方案让它快速? 谢谢!

1 个答案:

答案 0 :(得分:7)

只要GetEmployees()执行ToList(),就会从数据库中检索所有记录,而不仅仅是“重要”记录。当你稍后执行Where条款时,为时已晚。

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

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

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

除此之外,我不确定你还能做些什么来使你的C#代码更快。如果您只需要“重要”员工的子集(也在调用ToList()之前),请应用更多过滤器。