gpt4 book ai didi

c# - 检查现有事务范围是否处于事件状态

转载 作者:太空狗 更新时间:2023-10-29 20:44:39 26 4
gpt4 key购买 nike

我正在使用:

public class TransactionUtils
{
public static TransactionScope CreateTransactionScope()
{
var TransactionOptions = new TransactionOptions();
TransactionOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
TransactionOptions.Timeout = TimeSpan.MaxValue;
return new TransactionScope(TransactionScopeOption.Required, TransactionOptions);
}
}

创建我所有的交易。我面临的问题是当我嵌套 2 TransactionUtils.CreateTransactionScope() 时出现错误:超时间隔必须小于 2^32-2。参数名称:dueTm。我假设这是因为它试图将子事务附加到父事务,并且合并的超时时间过长。

有没有办法判断新创建的事务是否是嵌套事务,这样我就可以避免设置超时?

另一种方法是将参数传递给 CreateTransactionScope(),这样我就可以告诉它它是嵌套的并且不设置超时,但我宁愿找到一种自动处理它的方法。

最佳答案

有一个非常简单的答案:

System.Transactions.Transaction.Current != null

这从 Framework 2.0 开始有效。

我不确定为什么其他答案会如此深入地创建链接到非公共(public)领域的 IL。

关于c# - 检查现有事务范围是否处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13837338/

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