保存添加的实体后,检测实体状态的更改

时间:2013-07-16 12:18:55

标签: breeze durandal

我使用asp.net mvc和Durandal模板。我的问题与使用集成在Durandal中的 Breeze 有关。我需要检测任何实体状态更改。我在StackOverflow上找到了一个答案,在这里讨论了这个问题:How can I detect a change to an entity's EntityState?

建议的解决方案适用于大多数情况,我的意思是我们可以订阅entityChanged

它适用于:

  • 修改现有实体
  • 取消修改的现有实体(rejectChanges)
  • 保存现有实体(saveChanges)
  • 生成添加的实体
  • 已取消添加的实体(rejectChanged)
  
    

在上述所有情况下,我们都可以通过SO帖子中的建议解决方案来捕捉事件。

  
当我们创建一个新实体并保存此实体时,

但不是。这次entityChanged没有触发任何事件。我希望当点击保存按钮时,我可以捕获实体的entityChanged事件。对我来说很奇怪的是,在保存实体之前处于Added状态并且保存后实体处于Unchanged状态,因此存在发生但未捕获的更改状态。

有人可以启发我吗?

感谢。

1 个答案:

答案 0 :(得分:0)

entityChanged仅由实体值的变化触发。当您添加新实体时,就像您说的那样,它处于添加状态。修改它时,会进行修改。您可以订阅entityChanged事件以跟踪实体状态发生变化的时间,如Ward在下面建议的那样。

http://www.breezejs.com/documentation/inside-entity

How can I detect a change to an entity's EntityState?