gpt4 book ai didi

c# - TransactionScope:如果内部范围失败,如何使外部范围继续?

转载 作者:行者123 更新时间:2023-11-29 01:03:28 25 4
gpt4 key购买 nike

所以我正在构建一个使用嵌套 TransactionScopes 的程序。最初,我使用了默认构造函数,但我发现当我的一个内部作用域失败时,一切都失败了,我无法继续。我想要的是有一个内部作用域可以在不停止外部作用域的情况下失败,但如果外部作用域失败,我希望所有内部作用域都回滚。这可能吗?

最佳答案

虽然在 SQL 中有事务级别的东西,而且似乎存在嵌套事务,但事实并非如此 - 至少不是你认为的那样(我知道,有类似的问题需要解决)。

实验:您可以尝试在 SQL 查询窗口中调用多个 begin tran,询问事务级别和事务 ID。级别会增加,但在每个事务中您都会获得最外层事务的 ID,因此会使用最外层事务(因此 TransactionScope.Requires new 选项在那里没有太大帮助)。

可能的解决方案:您想要实现的是可能的,但不完全是这样:您可以绕过内部范围内的事务(但必须坚持原子过程)。如果这不适用,你必须重新考虑你所做的,以及你是否可以在没有这种复杂性的情况下解决它......

阅读有关事务嵌套的更多信息,它在 Oracle 和 SQL 上的行为不同。

关于c# - TransactionScope:如果内部范围失败,如何使外部范围继续?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21171464/

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