2014-02-07 3 views
0

난 쿼리가있는 경우 - HTTP : 나는 믿고 ///Northwind.svc/Orders 필터 =화물 하였다 (30)WCF 데이터 서비스 쿼리 실행

, WCF 데이터 서비스 쿼리 실행 -

    를?
  1. foreach와 같이 엔티티 집합이 열거 된 경우.
  2. 쿼리가 List 컬렉션에 할당되거나 First 또는 Single이 호출 될 때.
  3. Execute 또는 BeginExecute 메서드를 명시 적으로 호출하면.

내 질문 - 1. 내가 jQuery를 사용하여 위의 URL을 호출하고 결과를 열거하면 내가 위의 URL 또는

  1. 로 이동합니다.

언제 내 쿼리가 실행됩니까?

나는 내 질문 # 2 결과를 통해 열거하는 동안 매번 실행됩니다 믿습니다. 그렇다면 어떻게하면 모든 네트워크 검색 결과를 얻을 수 있는지를 피할 수 있습니다. WCF 데이터 서비스의

답변

1

클라이언트 측

덕분에 쿼리 결과에 액세스 할 수 LINQ 공급자를 제한 사용합니다. 다른 LINQ 공급자와 마찬가지로 지연된 쿼리 실행을 사용합니다. 즉, 결과가 필요할 때까지 쿼리 (OData가 HTTP 호출 인 경우)를 실행하지 않습니다. 따라서 HTTP 호출이 언제 발생하는지 파악하기 쉽습니다. 물론 그것은 결과 열거에서 Count()와 같은 집계 호출에서 First(), Single() 등의 호출에서 발생합니다.

JavaScript 및 jQuery는 WCF Data Services의 클라이언트 측과 아무 관련이 없습니다. 저는 UI 개발자는 아니지만 AFAIK jQuery는 자체 HTTP 도우미 메서드를 가지고 있으므로 구현 방법을 확인해야합니다. 하지만 일반적으로 OData 요청이 있으므로 실행을 분리 할 수 ​​없습니다. 일단 OData 피드로 보내면 모든 결과가 반환됩니다. 가져온 결과의 수를 제한해야하는 경우 $ count 절을 사용하여 쿼리 URI를 확장 할 수 있습니다.