기본 데이터 저장소 (현재 SQL Server 2005)를 쿼리하는 데 사용되는 WCF 서비스가 있습니다. 이 서비스는 다소 많은 양의 데이터를 반환 할 수 있습니다. ~ 20 개의 속성을 포함하는 우리 엔티티 클래스의 60000+ 인스턴스. 속성은 주로 string, int, DateTime과 같은 프리미티브 (primitives)입니다. 그 계층 구조는별로 깊지 않습니다.많은 양의 데이터가있는 WCF 서비스에 대한 모범 사례가 있습니까?
이 서비스를 사용하는 한 응용 프로그램은 일반적으로 합리적인 수의 엔터티 만 반환하는 쿼리를 만듭니다 (단 몇 인스턴스에서 최대 2,000 개). 그러나 때때로 위에서 언급 한 것처럼 많은 양을 반환하는 쿼리를 생성합니다 (쿼리 데이터를 처리해야하므로 쿼리 기준을 좁힐 수 없습니다).
우리가하고 싶은 것은 클라이언트가 서비스를 호출하고 특정 수의 인스턴스를 다시 가져온 다음 다시 호출하여 다음 청크를 가져올 수있는 일종의 "페이징"기능을 도입하는 것입니다. 전체 결과가 반입됩니다. WCF에 많은 도움이되지는 않았지만,이를 달성하기위한 최선의 방법은 확실하지 않습니다.
염두에 두어야 할 한 가지 사실은 청크를 가져 오는 동안 기본 데이터가 매우 잘 변경 될 수 있다는 것입니다. 나는 이것이 우리에게 문제가되는지 아닌지 잘 모르겠다. (조금은 생각할 필요가있다.) 그렇지만 그렇게 할 수 있기 때문에 특정 상황을 다루는 것에 대한 모든 의견도 환영 받는다.
우리는 전체 결과가 수신되기 전에 데이터 처리를 시작하기를 원하기 때문에 응답 스트리밍을 살펴 보았지만 페이징 샘플도보고 싶습니다.
그래서 짧은 질문 : 이런 종류의 시나리오 (또는 우리가 알고 있어야하는 절대적인 아니오)에 대한 모범 사례가 있습니까?
Fredrik- 당신은 이것을 보았습니다. http://stackoverflow.com/questions/741413/implementing-pager-through-wcf-service- 조금 기본이지만 – RichardOD
@RichardOD : 링크를 이용해 주셔서 감사합니다. 나는 우리가 그보다 낮은 단계에서 이것을 공격 할 필요가 있다고 생각하지만, 실험 시간을 줄 것이다. –