2013-05-09 55 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