2014-12-04 3 views
1

결과가 300 - 500 개의 결과 집합을 갖는 쿼리가 있습니다. 나는 그것이 많은 항목은 아니지만 60-90 초와 같은 계산에 오랜 시간이 걸린다는 것을 알고 있습니다 ...
Management Studio에서 EF6에 의해 생성 된 쿼리를 실행할 때 나는 매초 2-3 개의 새로운 행을 얻습니다.
그리드에서이 동작을 복제하고 싶습니다.EF6을 사용한 비동기 쿼리 결과

EF6를 사용하여 이것을 수행 할 방법이 있습니까? 은 "비동기"키워드/방법을 사용하여

+0

하나의 해결책은 우아하지는 않지만, 결과가 돌아올 때마다'Skip()'과'Take()'를 사용하여 결과를 페이지화하고 다음 페이지를 호출하는 것입니다. 같은 최종 결과. –

답변

2

을있을 것 같지 않습니다 ...이 사용 BeginExecuteReader + 콜백 및도록 SqlConnection에 대한 몇 가지 설정을 수행하는 데 사용 ... 걸어 전체 작업을 강제로 그것에 대해 문서의 많은하지만 엔티티 프레임 워크 6 ForEachAsync 확장 방법을 추가 나타납니다 :

코드 예제는 this blog

using (var context = new DataContext()) { 
    await context.Manufacturers.ForEachAsync(m => Console.WriteLine("{0} : {1}", m.Name, m.Country)); 
} 
에서 발견 http://msdn.microsoft.com/en-us/library/system.data.entity.queryableextensions.foreachasync(v=vs.113).aspx

항목 콜백에서 결과를 사용할 수있게되면 UI로 다시 보낼 수 있습니다.