2016-09-30 20 views
0

如果通過EntityManager.createEntity()創建實體客戶端,導出時,breeze生成tempKeys並將它們分配給新創建的實體。導出/導入實體創建服務器端

但是有些實體是在服務器端創建的,但沒有保存(只是用新的操作符創建)。 Breezejs客戶端正在查詢。獲取的實體的EntityState未更改。 PrimaryKey Id = 0,它剛創建,但沒有保存到數據庫。 當您在管理器上創建exportEntities時,它不會生成tempKeys,並且實體Id保持爲零。我嘗試在導出之前手動將EntityState設置爲在實體上添加,但仍未生成tempKeys。

任何想法如何正確導出來自服務器端的未保存的實體?

回答

0

我認爲Breeze只會在實體附加時創建一個新的臨時密鑰給狀態爲「已添加」的EntityManager。所以試試這個:

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

這應該會導致生成一個新的臨時密鑰。