gpt4 book ai didi

entity-framework - 使用 OData 进行事务性批处理

转载 作者:行者123 更新时间:2023-12-04 00:41:58 26 4
gpt4 key购买 nike

使用 Web API OData,我有 $batch 处理工作,但是,对数据库的持久性不是事务性的。如果我在请求中的变更集中包含多个请求,并且其中一个失败,另一个仍然完成,因为对 Controller 的每个单独调用都有自己的 DbContext。

例如,如果我提交一个包含两个更改集的 Batch:

第 1 批
- 变更集 1
- - 修补有效对象
-- 修补无效对象
- 结束变更集 1
- 变更集 2
- - 插入有效对象
- 结束变更集 2
结束批次

我希望第一个有效补丁会被回滚,因为更改集无法完全完成,但是,由于每个调用都有自己的 DbContext,第一个补丁被提交,第二个不是,插入是坚定的。

是否有标准方法通过 OData 的 $batch 请求来支持事务?

最佳答案

以下链接显示了处理事务中的变更集所需的 Web API OData 实现。您是正确的,默认批处理处理程序不会为您执行此操作:

http://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v3/ODataEFBatchSample/

更新
原始链接似乎已经消失 - 以下链接包含用于事务处理的类似逻辑(以及 v4):

https://damienbod.com/2014/08/14/web-api-odata-v4-batching-part-10/

关于entity-framework - 使用 OData 进行事务性批处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21373362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com