我已经在我今天晚上知识刷牙,努力克服4年,因为我的工作,为公司的坏的编程习惯。我最近偶然发现的一件事是System.Transactions。在过去几个小时阅读了这些信息之后,我想我对自己的工作方式以及为什么要使用它们有充分的了解。但是,我所看到的所有示例都显示了从事务内部调用的内联T-SQL。做数据库的访问时,专门混合System.Transactions的与SqlTransactions
我几乎使用存储过程和现有的存储过程都被包裹在自己SqlTransactions。你知道,使用'Begin Tran'然后回滚或提交。如果一个Stored Proc调用另一个存储过程,它也会创建一个事务并且Commits冒泡,直到外层的提交或回退。很棒。
所以现在我的问题是,如果我想开始在我的代码中使用System.Transactions - 为了监视不能嵌套在单个存储过程中的连续数据库任务的简单目的 - 这是如何与现有的SqlTransactions我已经在我的存储特效?
在我的代码中使用System.Transactions只会在实际提交之前添加一层保护,或者因为我在SqlTransaction中显式提交 - 数据是否会持久保留,而不管基于代码提交还是回滚交易?
在这个问题上接受的答案是错误的。在System.Transaction中使用Sql事务会导致意外的行为(即Sql事务不参与外部System.Transaction!)这样做会有效地中和您的事务。 – 2016-10-19 13:45:47
感谢您跟进这些更正,比尔。 7年后,我甚至不记得是否我最终实施了任何需要这一点的事情,但最好有正确答案标记。 :) – WesleyJohnson 2016-10-20 16:04:29