0

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

4

1 回答 1

1

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

于 2013-05-13T00:49:49.350 回答