1

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

manager.createEntity('Project');

并出现下一个错误:

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

仅当我在调用函数之前对 localStorage 使用导入实体函数时才会出现该错误createEntity

测试步骤:

  1. 打开浏览器,创建实体
  2. 将实体导入本地存储
  3. 关闭浏览器
  4. 打开浏览器并从 localStorage 加载数据
  5. 创建一个新实体,这里出现错误This key is already attached: Project:#Solution.Project.Models--1

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

请帮我解决这个错误。

4

3 回答 3

0

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

于 2013-06-02T08:06:51.473 回答
0

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

于 2013-06-04T21:48:41.003 回答
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);

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

谢谢。

于 2013-06-07T19:44:47.443 回答