2016-03-31 9 views
0

Wenn ich führen Sie die folgende Brise query:Brise Cache-Abfragen - Feststellen, ob leere Auflistung Navigationseigenschaft wirklich leer ist

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

der zurück myCollectionNavigationProperty ein JavaScript-Array mit einer Länge von 0, wenn beiden zu sein scheint:

  1. die Eigenschaft Sammlung Navigation hat wirklich keine Übereinstimmungen Elemente auf der Server-Datenbank

  2. Die Sammlung Navigations Eigenschaft wurde auf dem Server und ist daher nicht in dem lokalen Cache

Idealer zuvor nicht abgefragt, Fall 2 in einem Null (oder undefiniert) Wert für myCollectionNavigationProperty

Offensichtlich führen würde Im obigen Fall 2 muss ich eine Abfrage an den Server senden, um die zugehörigen Entitäten abzurufen. Wenn jedoch die entsprechende Abfrage bereits gesendet wurde und das Array leer ist, weil wirklich keine übereinstimmenden Elemente vorhanden sind, muss ich die Abfrage nicht wiederholen Server.

Gibt es eine Möglichkeit mit Brise zu sagen, ob eine zugehörige Sammlung von Entitäten leer ist, weil sie noch nicht auf dem Server abgefragt wurde? Vielen Dank.

Antwort

0

Nicht alle springen gleichzeitig! Ich bin darüber gestolpert (ich habe mir die Eigenschaften von entityAspect angeschaut, aber nicht genau genug nach Methoden gesucht).

Die EntityAspect-Eigenschaft hat eine isNavigationPropertyLoaded-Methode, die den Eigenschaftsnamen als Zeichenfolge verwendet. Es hat auch eine Methode loadNavigationProperty (identisches Argument), die eine Zusage zurückgibt.