您好,非常感謝您的幫助。BreezeJS EntityManager.saveChanges()未調用acceptChanges()
我使用
"breeze-bridge-angular": "^4.0.1",
"breeze-client": "^1.6.3",
用於在acceptChanges()的文檔說,「微風調用後成功保存此方法。」並不鼓勵直接調用它。
http://breeze.github.io/doc-js/entitymanager-and-caching.html
然而,在我的經驗,這個簡單的代碼所示,它並不:
let day = this.em.createEntity("Day", { 'note': '', 'owner_id': 1});
await this.em.saveChanges();
let changes = this.em.hasChanges(); // true
this.em.acceptChanges();
changes = this.em.hasChanges(); // false
實體節創建於DB就好了,但如果在acceptChanges()不手動調用,隨後的saveChanges()將複製之前創建的Day Entity,因爲其狀態未重置爲UNCHANGED。
請幫我理解我做錯了什麼。
非常感謝! 邁克
當服務器有適當的響應時,會調用acceptChanges方法。響應應包含成功保存的每個實體。請檢查您的服務器響應。 –
POST RESPONSE to SaveChanges()via Fiddler 4 {「Entities」:[{「id」:62,「datetimme」:null,「note」:「」,「owner_id」:1,「gps」:null,感情 「:[],」 記憶 「:[],」 思考 「:[],」 關係 「:空,」 會話 「:[]}],」 KeyMappings 「:[{」 EntityTypeName 「:」 test_model.Day」 ,「TempValue」: - 2,「RealValue」:62}],「DeletedKeys」:[],「Errors」:null} – Mike
看起來您的服務器響應不包含實體類型,所以Breeze無法將其與緩存中的實體。您可能需要調整服務器端JSON序列化設置。 –