关于TransactionScope.Complete方法(链接)

相信有些同学会困扰,当我们执行TransactionScope.Complete()方法的时候,是否Transaction被真正提交到数据库了。

对于这一点,MSDN上有这么一段描述:

If the TransactionScope object created the transaction initially, the actual work of committing the transaction by the transaction manager occurs after the last line of code in the using block. If it did not create the transaction, the commit occurs whenever Commit is called by the owner of the CommittableTransaction object. At that point the transaction manager calls the resource managers and informs them to either commit or rollback, based on whether the Complete method was called on the TransactionScope object.

请查看:Implementing an Implicit Transaction using Transaction Scope 特别是这个部分。同样TransactionScope.Complete的介绍文档也有说到这一点。

同样在TransactionScope.Dispose的介绍文档,也有说到:

Calling this method marks the end of the transaction scope. If the TransactionScope object created the transaction and Complete was called on the scope, the TransactionScope object attempts to commit the transaction when this method is called.

所以,实际上TransactionScope提交Transaction到数据库的时间点是在using语句块的最后,也就是在调用TransactionScope.Dispose()方法的时候。

原文地址:https://www.cnblogs.com/OpenCoder/p/12268032.html

时间: 2024-11-11 01:30:09

关于TransactionScope.Complete方法(链接)的相关文章

jQuery - 链(Chaining):把动作/方法链接在一起

jQuery - 链(Chaining) 通过 jQuery,可以把动作/方法链接在一起. Chaining 允许我们在一条语句中运行多个 jQuery 方法(在相同的元素上). jQuery 方法链接 直到现在,我们都是一次写一条 jQuery 语句(一条接着另一条). 不过,有一种名为链接(chaining)的技术,允许我们在相同的元素上运行多条 jQuery 命令,一条接着另一条. 提示: 这样的话,浏览器就不必多次查找相同的元素. 如需链接一个动作,您只需简单地把该动作追加到之前的动作上

【转】TransactionScope事务处理方法介绍及.NET Core中的注意事项

什么是TransactionScope呢? TransactionScope作为System.Transactions的一部分被引入到.NET 2.0.同时SqlClient for .NET Core 从 2.1 及以上版本开始提供对System.Transactions的支持 . 它是一个类,它提供了一种简单的方法,可以将一组操作作为事务的一部分来进行处理,而不必担心场景背后的复杂性.如果某个操作在执行的过程中失败的话,则整个事务将失败并执行回滚操作,从而撤消已完成的所有操作.所有这些都将由

HTML--三种样式插入方法--链接---表格---列表

html三种样式表插入方法1.外部样式表---<link rel="styleheet" type="text/css" href="mystyle.css">2.内部样式表:--<style type="text/css> body{background-color:red} p{margin-left:20px}</style>3.内联样式表:<p style="color:red

一些很少用又很常见的功能的实现方法链接

Unity3D Mecanim在某个状态下动画重新播放 http://blog.csdn.net/asdfg123_/article/details/22913303 Unity3D截图并保存到android相册 http://www.taidous.com/bbs/thread-24476-1-1.html

Entity Framework 与 面向对象

说要分享,我了个*,写了一半放草稿箱了两个星期都快发霉了,趁着周末写完发出来吧. 文章分为五部分: 基础.类讲述的是用到的一些EF与面向对象的基础: 业务是讲怎么划分设计业务: 设计模式和工作模式讲述了在项目中用得比较多的通用的方法: 最后的项目迭代这次怎么迭代开发 现在有点晚了,我公司在山上,得赶着下山,没来得及审稿,所以有错误欢迎指正. 个人觉得有点赶,而且有点长,所以排列文本控制得不是很好,有待再继续补充或者修改. ======================分割线,专治强迫症,下面是半个

C#中TransactionScope的使用方法和原理

在.net 1.1的时代,还没有TransactionScope类,因此很多关于事务的处理,都交给了SqlTransaction和SqlConnection,每个Transaction是基于每个Connection的.这种设计对于跨越多个程序集或者多个方法的事务行为来说,不是非常好,需要把事务和数据库连接作为参数传入. 在.net 2.0后,TransactionScope类的出现,大大的简化了事务的设计.示例代码如下: static void Main(string[] args) { usi

转:C#中TransactionScope的使用方法和原理

在.net 1.1的时代,还没有TransactionScope类,因此很多关于事务的处理,都交给了SqlTransaction和SqlConnection,每个Transaction是基于每个Connection的.这种设计对于跨越多个程序集或者多个方法的事务行为来说,不是非常好,需要把事务和数据库连接作为参数传入. 在.net 2.0后,TransactionScope类的出现,大大的简化了事务的设计.示例代码如下: static void Main(string[] args) { usi

【网摘】C#中TransactionScope的使用方法和原理

时间 2013-08-12 19:59:34  51CTO推荐博文 原文  http://cnn237111.blog.51cto.com/2359144/1271600 在.net 1.1的时代,还没有TransactionScope类,因此很多关于事务的处理,都交给了SqlTransaction和SqlConnection,每个Transaction是基于每个Connection的.这种设计对于跨越多个程序集或者多个方法的事务行为来说,不是非常好,需要把事务和数据库连接作为参数传入. 在.n

C#中TransactionScope的使用方法和原理(摘)

出自51CTO博客:http://cnn237111.blog.51cto.com/2359144/1271600 在.net 1.1的时代,还没有TransactionScope类,因此很多关于事务的处理,都交给了SqlTransaction和 SqlConnection,每个Transaction是基于每个Connection的.这种设计对于跨越多个程序集或者多个方法的事务行为来说,不 是非常好,需要把事务和数据库连接作为参数传入. 在.net 2.0后,TransactionScope类的