Local storage Breeze manager.createEntity此密钥已附加

Local storage Breeze manager.createEntity此密钥已附加,local-storage,breeze,Local Storage,Breeze,我有一个SPA(热毛巾模板)并使用window.localStore在浏览器中保存数据。我使用了breeze 1.3.5中的导出/导入功能,但在后面的“使用导入实体”功能中,我需要创建另一个新实体并再次使用此行: manager.createEntity('Project'); 然后出现下一个错误: This key is already attached: Project:#Solution.Project.Models--1 仅当我在调用函数createEntity之前将实体导入本地存

我有一个SPA(热毛巾模板)并使用window.localStore在浏览器中保存数据。我使用了breeze 1.3.5中的导出/导入功能,但在后面的“使用导入实体”功能中,我需要创建另一个新实体并再次使用此行:

manager.createEntity('Project');
然后出现下一个错误:

This key is already attached: Project:#Solution.Project.Models--1 
仅当我在调用函数
createEntity
之前将实体导入本地存储时,才会出现此错误

测试步骤:

  • 打开浏览器,创建实体
  • 将实体导入本地存储
  • 关闭浏览器
  • 打开浏览器并从localStorage加载数据
  • 创建一个新实体,此时出现错误
    此键已附加:Project:#Solution.Project.Models--1

  • 如果我没有关闭浏览器,一切正常,但当我关闭浏览器并再次打开时出现错误,请从localStorage加载数据并创建新实体


    请帮助我解决此错误。

    可能您已经创建了实体项目。尝试在所有解决方案“createEntity”中搜索,看看是否有另一个名为Project的实体。

    不确定,但Breeze中有一个与导出/导入相关的bug,该bug在V1.3.5中刚刚修复。你能试试看,告诉我们这是不是问题吗

    我们无法在这里重现这个问题

    下面是我们的热毛巾测试解决方案的片段:

    return manager.executeQuery(query)
        .then(function (data) {
            var newPhysician0 = manager.createEntity('Physician');
            var bundle = manager.exportEntities();
            var em2 = new breeze.EntityManager({
                serviceName: manager.serviceName,
                metadataStore: manager.metadataStore
            });
            em2.importEntities(bundle);
            var newPhysician1 = manager.createEntity('Physician');
            var newPhysician2 = em2.createEntity('Physician');
            var newPhysician3 = manager.createEntity('Physician');
            var newPhysician4 = em2.createEntity('Physician');
    
            querySucceeded(data);
        })
        .fail(queryFailed);
    
    您能否提供重现问题的解决方案,以便我们进一步调查?请将解决方案保持在重新设置问题所需的最低限度


    谢谢。

    不,也许您需要查看此链接:我刚刚在Northwind项目的DocCode示例中试用了此链接,效果很好。也许这是因为我使用的是尚未发布的Breeze版本。如果是的话。。。好修复正在进行中:)感谢您提供的信息,在下一版本的breeze中肯定会解决此错误。当密钥是整数数据类型和标识或自动生成(或自动增量)时,会出现此错误调用函数
    importEntities
    后,函数
    createEntity
    失败,因为
    createEntity
    再次尝试分配
    id=-1
    ,例如
    createEntity
    必须分配新键
    id=-2
    。如果我没有关闭浏览器,一切正常,但当我关闭浏览器并再次打开,从localStorage加载数据并创建新实体时,出现了错误。(我编辑了我的问题,并添加了测试步骤)。请提供您的测试解决方案,以便我们可以尝试重新编写。谢谢