그래서 약간 이상한 것이므로 실제로 어떤 원인도 찾을 수 없습니다.Breeze.js는 로컬에서 실행될 때 쿼리 순서를 뒤집습니다.
내 앱은 기본적으로 로컬 캐시 등을 쿼리하는 것과 같은 일을 처리하는 하나의 표준 방법을 통해 거의 모든 쿼리를 실행하도록 설정되어 있습니다. 기본적으로 쿼리는 모두 매우 표준화되어 있습니다.
그런 다음 이상한 orderby 문제가 있습니다. 쿼리에는 특정 orderby 절이 포함되어 있습니다. 쿼리를 처음 실행하면 캐시가 검사되고 결과가 없으며 원격 데이터 원본을 쿼리하고 데이터를 모두 가져오고 정렬됩니다.
페이지로 돌아 가면 쿼리가 다시 실행되고 로컬 캐시에 대해 쿼리가 실행되어 데이터를 찾아서 반환합니다 ... 이상한 부분은 순서가 바뀌 었습니다. 매개 변수가 똑같은 점을 명심하십시오. 유일한 차이점은 executeQueryLocally를 사용하여 쿼리가 실행되고 결과가 발견되어 반환된다는 것입니다 (첫 번째 쿼리에서는 여전히 executeQueryLocally를 사용하여 실행되지만 결과가 없다는 것입니다 원격으로 실행하기 위해 진행됩니다).
결과가 역전 된 이유는 무엇인지 구체적으로 알 수 없습니다. (나는 그들이 역전되어 있다고 말하면 실제로 보증 할 수 없습니다 - 순서가 정해지지 않고 뒤집힌 순서대로 나옵니다)
이것은 실제로 두통을 유발하지 않습니다. 특히 이상한 일입니다. 특히 이런 일이 발생하는 유일한 쿼리 인 것 같습니다.
생각하십니까?
Breeze에서 강제로 주문 하시겠습니까? 그렇다면 orderBy 절을 사용하도록 고려 했습니까? 일반적으로 뷰 모델은 정렬, 정렬 등을 담당해야합니다 ... –
매우 유감스럽게도 모두 orderby에 대해 언급했지만 쿼리에 특정 orderby 절이 포함되어 있음을 분명히하지 않았습니다. 따라서 두 쿼리가 실제로 정확히 동일하므로 둘 다 동일한 특정 orderby 클래스를 포함한다는 점을 기억하십시오. 첫 번째 쿼리는 로컬 캐시에서 아무것도 찾지 않고 서버에서 실행되는 반면 두 번째 쿼리는 캐시에서 결과를 가져옵니다. – Adam
"주문 중"이 서버 쿼리 또는 클라이언트 쿼리에서 수행되고 있지 않다는 말입니까? –