实体框架.tolist()慢吗?(查询)

本文关键字:查询 慢吗 框架 实体 tolist | 更新日期: 2023-09-27 17:49:22

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

就性能而言,该方法是否可行?有什么办法能让它快一点吗?谢谢!

实体框架.tolist()慢吗?(查询)

一旦GetEmployees()执行ToList(),您就从数据库中检索所有记录,而不仅仅是"重要的"记录。当你稍后执行Where子句时,已经太晚了。

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

public List<Employee> GetImportantEmployees()
{
    var employee = new ApplicationDBContext().Employee;
    return employee.Where(e => e.IsImportant).ToList();
}

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