2013-11-20 23 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