2013-06-01 1 views
1

У меня есть SPA (шаблон горячего полотенца) и используйте window.localStore для хранения данных в браузере. Я использовал экспорт/импорт из бриза 1.3.5, но позже использование импортных организаций функционировать мне нужно создать другой новый объект и использовать снова эту строку:Breeze manager.createEntity Этот ключ уже подключен

manager.createEntity('Project'); 

И следующую ошибку появляется:

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

Ошибка появляется только в том случае, если я использую функцию объектов импорта в localStorage перед функцией вызова createEntity.

Этапы испытания:

  1. Открыть браузер, создания объектов
  2. Импорт объектов в LocalStorage
  3. Закрыть браузер
  4. Открытые данные браузера и нагрузки от LocalStorage
  5. Создать новый объект и здесь появляется ошибка This key is already attached: Project:#Solution.Project.Models--1

Если я не закрыл браузер, все работает нормально, но ошибка появилась, когда я закрыл браузер и снова открыл его, загрузив данные из localStorage и создав новый объект.

Пожалуйста, помогите мне с этой ошибкой.

+0

Я просто попробовал это в образце DocCode с проектом Northwind, и он отлично работает. Возможно, это потому, что я использую версию Breeze, которая еще не выпущена. Если так ... ну ... исправление уже в пути :) – Ward

+0

Спасибо за вашу информацию, определенно в следующей версии бриза эта ошибка будет решена. – kuskunko

ответ

0

Возможно, у вас есть alredy, создайте сущность Project. Попробуйте выполнить поиск во всем решении «createEntity» и посмотреть, есть ли другой объект под названием Project.

+0

Нет, может быть, вам нужно просмотреть эту ссылку: http://www.breezejs.com/documentation/creating-entities – kuskunko

0

Не уверен, но в Breeze произошла ошибка, связанная с Export/Import, которая была исправлена ​​только в версии 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

Смежные вопросы