2009-08-24 4 views
0

엔티티 프레임 워크를 사용하는 저장소의 경우 다음 방법을 사용하여 IList를 반환합니다.createquery를 사용하여 내 저장소 일반 유지하기

public virtual IList<TEntity> ToList(Func<TEntity, bool> expression) 
{ 
    return Context.CreateQuery<TEntity>("[" + EntitySetName + "]") 
             .Where<TEntity>(expression).ToList(); 
} 

표현 매개 변수를 사용하면 결과를 변경할 수 있지만 이는 내 기대치가 아닙니다. createquery이 처음 평가 된 이후에 내 where이 적용됩니다. 저는 2 백만이 넘는 테이블을 가지고 이것을 사용하고 있습니다. 기록.

누구나 메서드를 일반적인 방법으로 유지하는 방법을 알고 있지만 먼저 모든 레코드를로드하지 않고 결과를 제어 할 수있는 능력이 있습니까?

public virtual IList<TEntity> ToList(Expression<Func<TEntity, bool>> expression) 

주 식 :

답변

2

당신은 SQL로 변환 할 수있는 일에 인수의 유형을 변경해야합니다.

+0

안녕하세요 크레이그, 작동합니다! 감사! – madC