2016-03-31 6 views
0

Если я выполнить следующий ветерок запрос:ветров запросы кэша - констатация, если пустая коллекция навигация свойство является действительно пустым

var foos = manager.executeQueryLocally(
    breeze.EntityQuery.from("foos") 
      .withParameters({bar:"xyz"}) 
); 
console.log(foos[0].myCollectionNavigationProperty); 

возвращаемый myCollectionNavigationProperty кажется Javascript массива длиной 0, если либо:

  1. свойство коллекции навигации действительно не имеет соответствия элементов на базе сервера

  2. Свойство коллекции навигации не была ранее запрашивается на сервере и, следовательно, не в локальном кэше

В идеале, корпус 2 приведет к нулевой (или не определено) значение для myCollectionNavigationProperty

Очевидно в случае 2 выше мне нужно отправить запрос на сервер для получения связанных объектов, однако, если соответствующий запрос уже отправлен, а массив пуст, потому что действительно нет соответствующих элементов - мне не нужно запрашивать сервер.

Есть ли способ с бриз сказать, что связанная коллекция объектов пуста, потому что она еще не была запрошена на сервере? Спасибо.

ответ

0

Не все прыгайте сразу! Я наткнулся на это (я искал свойства на объектеAspect, но не смотрел достаточно внимательно на методы).

Свойство entityAspect имеет метод isNavigationPropertyLoaded, который принимает имя свойства как строку. Он также имеет метод loadNavigationProperty (идентичный аргумент), который возвращает обещание.