2013-11-20 25 views
0

这看起来像错误,但我不确定。在同一数据上下文/跟踪更改会话中,ComplextType.rejectChanges设置错误的原始值?

  1. 创建实体(具有复杂类型)。
  2. 对创建的实体的复杂类型的字符串属性进行更改。 “测试”
  3. 保存更改(接受所有更改)。
  4. 从db/remote源重新加载同一实体。
  5. 对复杂类型的相同字符串属性进行更改。 “testED”
  6. Call manager.RevertChanges()..
    - >复杂类型的属性应该已经回复到#3(“测试”)状态。相反,它会回到“”。

我检查了微风代码,发现在处理revertChangesCore方法时,Complext类型的原始值确实显示“”而不是“test”。

无论出于何种原因,我砍死修复这个方式是由之前步骤#5调用下面的代码重新设置复杂类型的originalValues列表:

myEntity().ComplexType1().complexAspect.originalValues = []; 

任何想法可能是什么导致原始值错误?看起来好像这种情况发生时,特别是当你创建一个新的实体,而不是从数据库中加载现有的实体时。

回答

0

我刚刚创建了一个针对Breeze v 1.4.5的测试来复制这个,我没有看到这个bug。第二次'还原'后,我的complexType属性恢复为'测试'而不是''。你正在运行什么版本的微风?

+0

这是breeze.client nuget包v1.4.4。重新设置原始值的事实意味着,也许我应该在步骤#3之后显式调用acceptChanges,或者在重新加载之后显式调用acceptChanges? – diegohb

+0

不,你不需要做,acceptChanges在任何保存之后被有效地调用。你可以试试Breeze 1.4.5,看看是否解决了这个问题? –

+0

我知道这是在任何保存之后调用...希望有一个机会,也许微风中的错误是围绕该部分 - 保存后调用acceptChanges ...似乎是一个更容易修复的错误。 一旦我有一些时间来更新到1.4.5 ..我会更新这张票。 – diegohb