2013-06-01 21 views
1

我有一个SPA(热毛巾模板)并使用window.localStore将数据保存在浏览器中。我用导出/导入从微风1.3.5,但后来使用进口单位的功能,我需要建立一个其他新的实体,并再次使用这行:Breeze manager.createEntity此密钥已连接

manager.createEntity('Project'); 

而接下来的错误出现:

This key is already attached: Project:#Solution.Project.Models--1 

只有当我在调用函数createEntity之前使用导入实体函数localStorage时,才会出现此错误。测试

步骤:

  1. 打开浏览器,创建实体
  2. 进口单位从localStorage的localStorage的
  3. 关闭浏览器
  4. 打开浏览器并加载数据
  5. 创建一个新的实体,并在这里出现错误This key is already attached: Project:#Solution.Project.Models--1

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

请帮我解决这个错误。

+0

我刚刚在Northwind Project的DocCode示例中试过,它工作正常。也许这是因为我正在使用尚未发布的Breeze版本。如果是这样的话......那么......修复是在路上:) – Ward

+0

感谢您的信息,绝对在微风的下一个版本中,这个错误将得到解决。 – kuskunko

回答

0

也许你已经建立了实体项目。尝试搜索所有解决方案“createEntity”,看看是否有另一个名为Project的实体。

+0

不,也许您需要查看此链接:http://www.breezejs.com/documentation/creating-entities – kuskunko

0

不确定,但是Breeze中有一个与导出/导入相关的bug,它在v 1.3.5中刚刚修复。你可以尝试一下,让我们知道如果这是问题?

+0

我已经更新到版本1.3.5,但错误仍然存​​在。 – kuskunko

+0

我们不能重复这一点,我们需要更多的信息。 –

+0

当键是一个整数数据类型和标识或自动生成(或自动增量),并且函数'createEntity'在调用函数'importEntities'后失败,因为'createEntity'尝试再次分配'id = -1',当'createEntity'必须分配新密钥'id = -2'时。 – kuskunko

0

ddtere,

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

这是我们从热毛巾试液片段:

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); 

你可以提供一个解决方案再现问题,以便我们进一步调查?请将解决方案保持在必要的最低限度以重新解决问题。

谢谢。

+0

如果我没有关闭浏览器一切正常,但是当我关闭浏览器并再次打开时出现错误,从localStorage加载数据并创建一个新实体。 (我编辑了我的问题,并添加了测试步骤)。 – kuskunko

+0

请提供您的测试解决方案,以便我们可以尝试重新制作。谢谢。 – sbelini