TransactionScope 防护检查

TransactionScope guard check

我正在处理一个几乎不存在事务的遗留项目,这会在出现错误时导致大量的部分提交。 SQL 调用混合了原始 ADO、Linq to Entities 和 EntityFramework,我想在事务中得到这些 运行ning。

为了解决这个问题,我正在研究 TransactionScope 路线。谁能告诉我是否可以进行某种保护检查以确定方法是否来自 TransactionScope 内部的 运行?使用属性或对 TransactionScope 对象本身进行某种检查。最终目标是抛出某种有意义的异常并追踪缺失事务的区域。

谢谢

如果您的代码 运行 在 TransactionScope 块内,则 Transaction.Current != null。您需要添加 using for System.Transactions 和对 System.Transactions.dll 的引用。