Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 亚音速:将SharedDbConnectionScope与TransactionScope一起使用似乎已被破坏_C#_Subsonic - Fatal编程技术网

C# 亚音速:将SharedDbConnectionScope与TransactionScope一起使用似乎已被破坏

C# 亚音速:将SharedDbConnectionScope与TransactionScope一起使用似乎已被破坏,c#,subsonic,C#,Subsonic,使用下面的代码,预期的行为是数据库不会反映更新,因为从未调用过ts.Complete(),但更新似乎已经完成。但是如果我省略了SharedDbConnectionScope,那么就会看到预期的行为。SharedDbConnectionScope有问题吗?顺便说一句,我用的是亚音速2.2 using (SharedDbConnectionScope sharedConnectionScope = new SharedDbConnectionScope()) { usi

使用下面的代码,预期的行为是数据库不会反映更新,因为从未调用过ts.Complete(),但更新似乎已经完成。但是如果我省略了SharedDbConnectionScope,那么就会看到预期的行为。SharedDbConnectionScope有问题吗?顺便说一句,我用的是亚音速2.2

using (SharedDbConnectionScope sharedConnectionScope = new SharedDbConnectionScope())           
{
    using (TransactionScope ts = new TransactionScope())
    {                
        // update here
    }
}

发现了问题。关于亚音速的文件似乎是错误的。如果我将TransactionScope包装到SharedDbConnectionScope上,那么它工作正常。正确的方法应该是:

using (TransactionScope ts = new TransactionScope())
{
    using (SharedDbConnectionScope sharedConnectionScope = new SharedDbConnectionScope())           
    {
            // update here
    }
}

编辑:正如firestorm提到的,SharedDbConnectionScope在亚音速2.2中似乎不起作用。因此,唯一的解决方案似乎是安装MSDT,而不使用SharedDbConnectionScope。

我认为SharedDbConnectionScope在亚音速2.2中根本不起作用。 据我所知,该对象的整体思想是,当您使用它时,不需要在服务器上安装MSDT。我根本没法让它工作! 当你安装MSDT时,你就不再需要SharedDbConnectionScope了,这就是为什么你的代码在TransactionScope之后创建时可以工作的原因