我认为entity.entityAspect.setDeleted()的想法是在实体上设置一个“已删除”标志,但没有别的什么?
问题是我有一个实体的 observableArray,我对其中一个实体调用“setDeleted()”,我的 observableArray 立即减一。当我随后使用作为参数传入的实体的 observableArray 调用“saveChanges”时,已删除的实体不存在,并且这似乎阻止了永久删除,因为当我刷新页面时该实体仍然存在。
我在这里错过了一个基本点吗?我的 saveChanges 方法适用于新创建的实体和更改的实体,只是不适用于删除的实体,因为它们在调用“saveChanges”时从未存在!
return manager.saveChanges(entities)
.then(saveSucceeded)
.fail(saveFailed);
Run Code Online (Sandbox Code Playgroud)
调用“setDeleted”可以完成几件事(根据设计)。
1)它将实体标记为“已删除”,即entityAspect.entityState变为“已删除”。
2) 该实体从其所属的任何导航属性数组中删除。即,如果您删除“orderDetail”,它将与它所属的任何其他导航集合一起从父“orderDetails”集合中删除。
3) 如果实体被“保存”,它实际上会在数据库中被删除,并且客户端上的实体将进入“分离”状态。(这意味着您必须在不带任何参数的情况下调用 EntityManager.saveChanges(在这种情况下,微风将所有添加/修改或删除的实体发送到服务器),或者您必须显式传入“已删除”实体以及任何其他更改,以saveChanges 调用。
我的猜测是,您的“可观察”数组实际上是导航属性的值,并且您正在使用此集合显式调用 saveChanges (它将不再包含“已删除”实体)。尝试只调用不带任何参数的 saveChanges() 。
这有道理吗?
| 归档时间: |
|
| 查看次数: |
2345 次 |
| 最近记录: |