事务作用域(TransactionScope)抛出异常

6

我确定这是一个基本的问题,但我在Google和这里都找不到任何解决方法。

当我尝试使用该代码块时,它会抛出一个异常,即“System.Activities.Statements.TransactionScope”:在using语句中使用的类型必须可以隐式转换为“System.IDisposable”

using (TransactionScope trans = new TransactionScope()) { }

简单地说,我想在Linq代码中使用TransactionScope。

谢谢, 问候


也许你最好检查一下项目引用,确保它是正确的类型(在System.Transactions中)? - RobS
3个回答

8

您可能正在使用错误的TransactionScope。

您需要使用的是System.Transactions.TransactionScope,它位于System.Transactions.dll程序集中。确保已引用它(默认情况下没有引用),并且您正在使用"using System.Transactions"。


7
我不知道什么是System.Activities.Statements.TransactionScope,但您需要的是System.Transactions.TransactionScope。您还需要引用System.Transactions.dll

根据文档:

public sealed class TransactionScope : IDisposable

请注意,System.Activities.Statements.TransactionScope位于System.Activities.Statements中,该命名空间包含用于创建工作流的活动。该命名空间包含用于流程控制、与集合和变量交互、异常处理、补偿、事务处理以及与旧版工作流交互的活动。显然这并不合适。

2

您正在使用错误的 TransactionScope 类。正确的类在 System.Transactions 命名空间中。您的错误表明您正在使用来自 System.Activities.Statements 的另一个类。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接