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

时间:2016-03-31 02:40:26

标签: breeze

如果我执行以下微风查询:

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

返回的myCollectionNavigationProperty似乎是一个长度为0的javascript数组,如果

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

相关问题