TransactionScope抛出异常

时间:2011-01-13 14:29:49

标签: c# linq transactionscope

我确定这是一个非常基本的问题,但我无法在谷歌找到任何解决方案。

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

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

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

谢谢, 此致

3 个答案:

答案 0 :(得分:8)

您可能使用了错误的TransactionScope。

您正在寻找的是System.Transactions.TransactionScope,它位于System.Transactions.dll程序集中。确保它被引用(默认情况下不是),并且你是“using System.Transactions”。

答案 1 :(得分:6)

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

来自文档:

public sealed class TransactionScope : IDisposable

请注意,System.Activities.Statements.TransactionScope位于System.Activities.Statements,其中描述为

  

System.Activities.Statements命名空间包含可用于创建工作流的活动。此命名空间包含用于流控制,与集合和变量交互,异常,补偿,事务以及与旧工作流交互的活动。

显然不合适。

答案 2 :(得分:2)

您使用的是错误的TransactionScope课程。正确的名称在System.Transactions名称空间中。您的错误表明您正在使用System.Activities.Statements中的其他类。