2014-10-07 55 views
0

我在我的ASP.NET MVC项目中使用实体框架。我需要知道,如果我正确处理以下情况。高效地使用实体框架

假设我的员工表有超过100000条记录,我必须根据客户要求应用各种过滤。

因此,我编写1个方法ReadAll()从数据库中检索所有记录,然后使用lambda表达式对数据源应用过滤。

例如:通过ID

public List<Employee> ReadAll() 
{ 
    // return List<Employee> 
} 


private Employee(int id) 
{ 
    Employee obj=ReadAll().where(o=>o.empID == id).First(); 
} 

我试图用一个读取所有方法,因为有要应用不同的过滤和我没有写单独的数据库访问方法他们每个人获得员工。

这会对我的应用程序性能产生不利影响吗?

+0

当然是的,你应该使用IQueryable而不是List – 2014-10-07 13:19:20

回答

6

更改ReadAll以返回IQueryable,以便在您应用过滤器并调用First()或ToList()之后才会执行查询。

public IQueryable<Employee> ReadAll() 
{ 
    // return List<Employee> 
} 

实体框架使用一个名为deferred execution的概念。我鼓励你阅读它。