Breeze 使用ExecuteQueryLocal而不使用服务器元数据时出现问题

Breeze 使用ExecuteQueryLocal而不使用服务器元数据时出现问题,breeze,Breeze,我没有使用EF,所以我遵循NoDb示例成功地从我的WebApi加载数据,而不使用服务器端元数据。在初始加载之后,我希望在用户与页面交互时使用EntityManager中的本地数据缓存。问题是当我在本地调用ExecuteQueryLocal时,缓存的数据集是空的。我仔细查看了代码,以了解数据没有保存到缓存的原因,其中有两个问题: 在_getEntityType中,metadataStore.isEmpty()返回true 在元数据存储区的_getEntityType中。_getEntityType

我没有使用EF,所以我遵循NoDb示例成功地从我的WebApi加载数据,而不使用服务器端元数据。在初始加载之后,我希望在用户与页面交互时使用EntityManager中的本地数据缓存。问题是当我在本地调用ExecuteQueryLocal时,缓存的数据集是空的。我仔细查看了代码,以了解数据没有保存到缓存的原因,其中有两个问题:

  • 在_getEntityType中,metadataStore.isEmpty()返回true
  • 在元数据存储区的_getEntityType中。_getEntityTypeNameForResourceName未返回任何内容

  • 为了解决这个问题,我在代码中添加了对metadataStore.addDataService和metadataStore的调用。添加这些后,缓存被正确保存,ExecuteQueryLocal工作。我想这不是让它工作的预期方式。。。我还有什么地方做错了吗?或者这是一个可以修复的bug?

    很抱歉花了这么长时间才回到这个bug

    我们刚刚在breeze v.1.1.3中公开了metadataStore.setEntityTypeForResourceName。(我们重命名了该方法以删除第一个“\u1”)

    否则,你做的完全正确。接得好