Breeze 无法导入已添加的EntityState

Breeze 无法导入已添加的EntityState,breeze,Breeze,我在导入缓存数据时遇到问题。我现在有一个非常简单的页面,可以用作概念证明。后端只有一张桌子。我所有的积垢功能都在工作。当用户更改本地数据时,我会更新本地存储中的记录 var bundle=em.exportEntitiesem.getChanges; window.localStorage.setItemwaterLevelChanges,bundle 加载页面后,我导入实体 var bundle = window.localStorage.getItem("waterLevelChanges"

我在导入缓存数据时遇到问题。我现在有一个非常简单的页面,可以用作概念证明。后端只有一张桌子。我所有的积垢功能都在工作。当用户更改本地数据时,我会更新本地存储中的记录

var bundle=em.exportEntitiesem.getChanges; window.localStorage.setItemwaterLevelChanges,bundle

加载页面后,我导入实体

var bundle = window.localStorage.getItem("waterLevelChanges");
        if (bundle)
            em.importEntities(bundle);

如果我正在编辑一条现有的记录,这将非常有效。但是,我添加但未保存到数据库的任何记录都不会填充。在bundle中,它们的EntityState为Added。我读到如果你不使用临时键会有问题,但我让Breeze使用临时键并按自己的喜好管理它们。我已经通过查看开发人员工具验证了数据是否存储在本地缓存中。调试时,我也可以在捆绑包中看到它。

我们的测试表明,您所述的场景应该可以正常工作

在导出新订单、将其保存到浏览器存储并重新导入时,请参见此图;它的添加状态已确认。订单类型具有服务器生成的临时密钥


我想你必须重新描述你失败的情景,让我相信这是行不通的。也许你可以从分叉和修改它来表达你的观点开始;TodoItem还有服务器生成的临时密钥。

感谢您提供测试链接。是的,在查看em.getEntities之后,我可以看到添加的项目在那里。所以我的问题是我缺少了它们和我的可观测阵列之间的联系。您是否建议我在导入后循环实体,并将EntityState为的任何项目推送到observable数组中?在看到您的observable数组代码之前,我无法正确回答。我的直觉是,这与我无关。当然,在导入时,之前不在导入em缓存中的任何实体都将是不在任何数组中的新JavaScript对象。即使导入了DoppleGanger并提供了新的临时密钥,旧添加的实体仍将存在。这是线索吗?