breeze缓存查询-确定空集合导航属性是否确实为空

breeze缓存查询-确定空集合导航属性是否确实为空,breeze,Breeze,如果我执行以下查询: var foos = manager.executeQueryLocally( breeze.EntityQuery.from("foos") .withParameters({bar:"xyz"}) ); console.log(foos[0].myCollectionNavigationProperty); 返回的myCollectionNavigationProperty似乎是长度为0的javascript数组,如果或: 集合导航属性在服

如果我执行以下查询:

var foos = manager.executeQueryLocally(
    breeze.EntityQuery.from("foos")
          .withParameters({bar:"xyz"})
);
console.log(foos[0].myCollectionNavigationProperty);
返回的myCollectionNavigationProperty似乎是长度为0的javascript数组,如果

  • 集合导航属性在服务器数据库上确实没有匹配的元素

  • 以前未在服务器上查询集合导航属性,因此不在本地缓存中

  • 理想情况下,情况2会导致myCollectionNavigationProperty的值为null(或未定义)

    显然,在上面的案例2中,我需要向服务器发送一个查询以获取相关的实体,但是如果已经发送了相应的查询,并且数组为空,因为确实没有匹配的元素,我不需要重新查询服务器

    breeze是否有办法判断关联的实体集合是否为空,因为它尚未在服务器上查询?谢谢。

    不要一下子跳进去! 我偶然发现了这一点(我在entityAspect上查看属性,但没有仔细查看方法)

    entityAspect属性有一个isNavigationPropertyLoaded方法,该方法将属性名称作为字符串。它也有一个 loadNavigationProperty方法(相同的参数),该方法返回承诺