0

我将 asp.net mvc 与 Durandal 模板一起使用。我的问题与集成在 Durandal中的Breeze的使用有关。我需要检测任何实体状态变化。我在 StackOverflow 上找到了一个答案,在这里讨论了这个问题:如何检测对实体的 EntityState 的更改?

建议的解决方案在大多数情况下都有效,我的意思是我们可以订阅entityChanged

它在以下情况下起作用:

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

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

但不是当我们创建一个新实体并且这个实体被保存时。这次没有在entityChanged. 我希望当点击保存按钮时我能捕捉entityChanged到实体的事件。对我来说奇怪的是,在保存实体之前处于Added状态,而在保存实体之后处于Unchanged状态,因此存在发生但未捕获的更改状态。

有人可以启发我吗?

谢谢。

4

1 回答 1

0

entityChanged 仅由实体值的更改触发。当您添加一个新实体时,如您所说,它处于添加状态。当你修改它时,被修改。您可以订阅 entityChanged 事件以跟踪实体状态何时发生更改,如下面的 Ward 建议。

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

如何检测实体 EntityState 的更改?

于 2013-07-16T15:52:43.133 回答