Breeze SaveChanges部分失败

时间:2013-05-09 17:25:13

标签: breeze

我正在考虑以下场景:在客户端,您更新了两个实体,并使用json包提交POST。在服务器端,您执行拦截并应用一些业务逻辑。保存适用于其中一个实体,但对于另一个实体则失败。在您看来,什么是正确的解决方案和原因:1。我应该做回滚并在客户端上返回异常,或者2.提交第一个实体的更新并返回一个消息,表明该保存仅适用于其中一个实体?我知道来自IdeaBlade的人认为saveChanges是一个单独的事务(因此所有CRUD功能都在一个POST中),所以判断我认为1.应该是正确的方法。但是我很欣赏所有合理的意见。谢谢!

1 个答案:

答案 0 :(得分:1)

这取决于你做了什么。我敢打赌,如果你回滚,你会节省很多时间。但是,如果您真的想要,则可以返回已保存的失败和成功实体的列表。然后,用户(假设错误是用户错误)可以对错误实体进行更改并再次仅提交它们。但这可能变得困难。 Breeze附加a state to each entity,您现在需要管理它。因此,在响应中,您需要确定哪些实体失败,哪些实体成功,然后在客户端更新其状态,否则您将重新提交您不需要的提交。我认为将这个业务逻辑放在客户端上是一个更好的投资,然后在服务器上回滚(并记录事件,以便你可以修复它),以防出现错误。这有帮助吗?