2014-07-08 27 views
0

我的客戶端應用程序我打電話給entityManager.saveChanges發送所有當前已更改的實體從客戶端到服務器。然後,在服務器上的BeforeSaveEntity事件中,我正在對每個實體執行一些服務器端驗證,以查看是否應將其從保存映射中排除。因此,例如,我的實體可能對描述的值太長。所以我從BeforeSaveEntity返回false,並生成一個新的EntityError,然後將其添加到saveResult.EntityErrors集合中。所有未從保存映射中排除的有效記錄然後成功保存,並將我的saveResult返回給客戶端。但是由於這種單個實體錯誤,返回的實體的自動修補不會在客戶端上發生。我查看了源代碼,基本上似乎有一個檢查,說如果saveResult.EntityErrors集合中有任何內容,請不要打擾修補程序。但是隻有1個實體沒有被有意識地保存,所以我仍然希望能夠修補其他實體。這是行爲設計​​嗎?我希望能夠從保存中排除某些實體(我可以使用BeforeSaveEntity事件),但似乎沒有任何方法可以使用內置機制將實體錯誤返回給客戶端,而沒有完全修補被放棄。Breeze JS:實體錯誤阻止客戶端上的修補程序

回答

0

保存在微風中是可以交易的(如果可能的話)(一些後端提供者,比如MongoDb並不是因爲他們不支持它)。這意味着如果保存包中的任何實體遇到任何故障,整個保存將被恢復,並將錯誤返回給客戶端。這是設計。