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