我确定这是一个非常基本的问题,但我无法在谷歌找到任何解决方案。
当我试图使用该代码块时,它会抛出异常 'System.Activities.Statements.TransactionScope':在using语句中使用的类型必须可以隐式转换为'System.IDisposable'
using (TransactionScope trans = new TransactionScope())
{
}
简单地说,我想在Linq代码中使用TransactionScope。
谢谢, 此致
答案 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
中的其他类。