Breeze manager.createEntity此密钥已附加

时间:2013-06-01 16:32:22

标签: local-storage breeze

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

manager.createEntity('Project');

出现下一个错误:

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

只有在调用函数createEntity之前将导入实体函数用于localStorage时才会出现错误。

测试步骤:

  1. 打开浏览器,创建实体
  2. 将实体导入localStorage
  3. 关闭浏览器
  4. 打开浏览器并从localStorage加载数据
  5. 创建一个新实体,此处显示错误This key is already attached: Project:#Solution.Project.Models--1
  6. 如果我没有关闭浏览器,一切正常,但是当我关闭浏览器并再次打开时出现错误,从localStorage加载数据并创建一个新实体。

    请帮我解决这个错误。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

ddtere,

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

以下是我们的Hot Towel测试解决方案的片段:

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

您能提供解决方案来重现问题,以便我们进一步调查吗?请将解决方案保持在最低限度以解决问题。

感谢。