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

breeze cache queries - ascertaining if empty collection navigation property is truly empty

如果我执行以下 breeze 查询:

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

返回的 myCollectionNavigationProperty 似乎是一个 javascript 数组,长度为 0 if either:

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

  2. collection导航属性以前没有在服务器上查询过,因此不在本地缓存中

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

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

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

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

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