2014-10-20 4 views
0

tableClient의 .excuteQuery 1.7푸른 테이블 클라이언트하는 executeQuery는 contunation을 처리하지 토큰 자동

CloudTable tableReference = tableClient.GetTableReference(“XYYZ”); 
tableReference.ExecuteQuery() 
tableReference.ExecuteQuery<TResult> 
tableReference.ExecuteQuery<TElement,TResult> 

가에서하는 executeQuery는 푸른 SDK 2.4 토큰 자동으로 계속를 처리 할 위의 방법인가 애저 SDK는 달리 토큰 자동으로 계속 처리합니까 이전 버전, 즉 1.7 SDK, 우리가 IQuerable의 .execute 메소드를 호출하는 것을 잊어 버리면 Continuation 토큰이 클라이언트로 반환되지 않을 가능성이 있습니다 (특히, 일부 파티션에 데이터가 없을 수있는 여러 파티션을 쿼리하는 경우). 현재 버전의 Azure SDK 2.4에서도 동일한 동작이 나타납니다. 우리는 명시 적으로 호출해야합니다 .execute()

각 또는 toList에 대해 호출 할 때까지 서버에 호출이 이루어지지 않습니다. ContextToken이 서버 측에서 제대로 처리되지 않으면 클라이언트에 연속 토큰을 보내도록 강제 할 방법이 있습니까?

답변

1

ExecuteQuery에서 반환되는 IEnumerable 개체는 지연 열거 자이므로 열거되기 전까지 실제로 요청하지 않습니다. 이것이 foreach 또는 ToList가 쿼리를 실행하고 연속 토큰을 처리하게하는 이유입니다. 즉, 간단히 말해서, 결과를 거치면됩니다.

+0

감사 Ozler, 그래서 연속 토큰 처리가 자동으로 처리됩니다. 빠른 응답을 주셔서 감사합니다. – user145610