首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SqlException内部TransactionScope

SqlException内部TransactionScope
EN

Stack Overflow用户
提问于 2011-01-21 10:23:50
回答 1查看 312关注 0票数 1

我目前正在从事VB.NET 2.0中的一个遗留项目。这个项目有一个非常有趣的DAL层,它不包含事务:-\\无论如何,这是我的工作,使程序的某些部分是事务性的,而且我无法访问DAL层代码。因此,我试图将整个代码部分放入单个TransactionScope中。

现在的问题是:当SqlException从DAL层的深处抛出时,我的事务总是被回滚!即使我捕获并处理同一个TransactionScope中的异常。

我的问题是:这是正常行为吗?我能做些什么吗?

我认为当异常抛出超出TransactionScope的界限时回滚事务是正常的,但如果异常是在这些边界内处理的,则不是这样!

任何帮助都将不胜感激!

编辑: SqlException实际上是从System.Data.Common.SqlCommand内部抛出的,所以我无法真正阻止它的发生。

你好,ldx

EN

回答 1

Stack Overflow用户

发布于 2011-03-29 17:32:02

好吧,我要收回我下面的答案,我把它删掉了,以避免任何不必要的混淆.:)

经过更多的测试后,我确定如果捕获并处理正常异常(而不是重新抛出),事务将按预期完成。可能是某些类别的异常(例如参与该事务的sql异常)可能总是使根范围内的事务无效,即使被处理了,但我还没有测试过这一点,因此无法证实这一理论。

抱歉的!

是的,这看起来确实是故意的。来自transactionScope文档:

剪错信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4757653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档