导出/导入服务器端创建的实体

时间:2016-09-30 06:04:29

标签: breeze

如果通过EntityManager.createEntity()创建实体客户端,则在导出时,breeze会生成tempKeys并将它们分配给新创建的实体。

但是某些实体是在服务器端创建的,但未保存(仅使用new运算符创建)。 Breezejs客户端正在进行查询。获取的实体的EntityState是Unchanged。 PrimaryKey Id = 0,它刚刚创建,但未保存到db。 当您在manager上创建exportEntities时,它不会生成tempKeys,并且实体Id保持为零。我尝试在导出之前手动将EntityState设置为在实体上添加,但仍未生成tempKeys。

如何正确导出来自服务器端的未保存实体?

1 个答案:

答案 0 :(得分:0)

我认为当实体连接到实体管理器时,Breeze只会创建一个新的临时密钥,状态为“已添加”。所以试试这个:

entityManager.detachEntity(entity);
entityManager.attachEntity(entity, breeze.EntityState.Added);

这应该会生成一个新的临时密钥。