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/