2014-10-07 3 views
0

ASP.NET MVC 프로젝트에서 Entity 프레임 워크를 사용하고 있습니다. 다음 시나리오를 올바르게 처리하고 있다면 알 필요가 있습니다.효율적으로 Entity Framework 사용

내 직원 테이블에 100,000 개가 넘는 레코드가 있고 클라이언트 요구 사항에 따라 다양한 필터링을 적용해야한다고합니다.

그래서 1 개의 메소드 ReadAll()을 작성하여 데이터베이스에서 모든 레코드를 검색 한 다음 람다 식을 사용하여 데이터 소스에 필터링을 적용합니다.

예 : 거기에 다양한 필터링이 적용되어야하며 내가 그들 각각 별도의 데이터베이스 액세스 방법을 쓸 필요가 없기 때문에 모든 방법을 읽어 나는 하나를 사용하려고 해요

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


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

ID로 직원 받기 .

내 응용 프로그램 성능에 나쁜 영향을 줍니까?

+0

물론 그렇습니다. 목록 대신 IQueryable을 사용해야합니다. –

답변

6

ReadAll을 변경하여 IQueryable을 반환하면 필터를 적용하고 First() 또는 ToList()를 호출 할 때까지 쿼리가 실행되지 않습니다.

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

Entity Framework는 deferred execution이라는 개념을 사용합니다. 나는 당신이 그것을 읽는 것이 좋습니다.

관련 문제