2013-05-09 61 views
0

我在考慮以下情況:在客戶端更新兩個實體,並提交帶有json包的POST。在服務器端,您可以進行攔截並應用一些業務邏輯。其中一個實體的保存工作正常,但另一個實體失敗。在你看來,什麼是正確的解決方案,以及爲什麼:1.我應該做回滾並在客戶端返回一個異常,或者2.提交第一個實體的更新並返回一條消息,表明保存僅適用於其中一個實體?我知道IdeaBlade的人認爲saveChanges是一個單獨的事務(因此所有的CRUD功能都在一個POST中),所以我認爲1.應該是正確的方法。不過,我欣賞所有合理的意見。謝謝!Breeze SaveChanges部分失敗

+0

看起來這兩個實體可以/應該獨立保存。如果這是您的業務邏輯,那麼爲什麼不提交兩個SaveChanges()? – pawel 2013-05-10 06:53:04

+0

因爲我需要批量保存。 – 2013-05-10 13:17:08

回答

1

那它取決於你在做什麼。我敢打賭,如果你只是回滾,你會節省很多時間。如果您真的想要,您可以返回保存失敗和成功實體的列表。然後用戶(假設錯誤是用戶錯誤)可以對錯誤的實體進行更改並僅提交它們。這可能會變得困難。微風重視a state to each entity,你現在需要管理。因此,在響應中,您需要確定哪些實體失敗以及哪些實體成功了,然後更新其在客戶端上的狀態,否則您將重新提交您不需要的提交。我認爲把這個業務邏輯放在客戶端上,然後在服務器上回滾(記錄事件,以便修復它),這將是一個更好的投資。這有幫助嗎?

+0

你的回答很好,但我希望在我接受其中一個之前看到更多答案:) – 2013-05-13 06:27:18

+0

我聽到你的男人,祝你好運,並希望你的應用程序出現良好 – mtleising 2013-05-13 22:41:27