TransactionScope的正确用法(转自:http://blog.csdn.net/greystar/article/details/1359960)

时间:2021-05-05 02:20:19

前一阵贴了一个关于transactionscope的贴子,以为是MS的BUG。后来经过认真仔细的调试,才找到原因。

原来的代码本身是没有没问题的。只是关于事务资源的处理放错了地方。正确的写法应该如下

如果A类是使用数据库资源的。

class  A

{

SqlConnection cn=null;

public A()

{

.....

cn.open();

}

}

//开始事务

using(transactionscope scope=new transactionscope())

{

//要确保对支持事务的资源的登记放在此范围内,如数据库资源的打开

A a=new A();

a.method();

.....

scope.comlete()

}

我们只要确保数据库的打开操作是在事务范围内打开就行了。这样就可以做到事务的正确操作。

以前的代码是因为一个业务对象的初始化操作在外部进行了。尽管后来在事务范围内进行业务操作,也不行.

A a=new A();

using(transactionscope scope=new transactionscope())

{

//要确保对支持事务的资源的登记放在此范围内,如数据库资源的打开

a.method();

.....

scope.comlete()

}

上述代码,其实是没有参与任何事务的。对于子事务而已也是一样,只要保证事务登记在事务范围内才正确

我是查看了数据库中打开连接的情况才知道上面的原理。真是惭愧的很.

TransactionScope的正确用法(转自:http://blog.csdn.net/greystar/article/details/1359960)的更多相关文章

  1. 炸天的3D引擎OpenCASCADE的用法及案例(https://blog.csdn.net/xipengbozai/article/details/117044032?spm=1001.2014.3001.5502)

    What CASCADE?Open CASCADE(简称OCC)平台是由法国Matra Datavision公司开发的CAD/CAE/CAM软件平台,可以说是世界上最重要的几何造型基础软件平台之一.开 ...

  2. js中index()的四种经典用法(转https://blog.csdn.net/superit401/article/details/51726826)

    <!doctype html><html lang="en"> <head> <meta charset="UTF-8&quot ...

  3. Postman用法简介----https&colon;&sol;&sol;blog&period;csdn&period;net&sol;flowerspring&sol;article&sol;details&sol;52774399

    https://blog.csdn.net/flowerspring/article/details/52774399 Postman用法简介

  4. matplotlib绘图基本用法-转自(http&colon;&sol;&sol;blog&period;csdn&period;net&sol;mao19931004&sol;article&sol;details&sol;51915016)

    本文转载自http://blog.csdn.net/mao19931004/article/details/51915016 <!DOCTYPE html PUBLIC "-//W3C ...

  5. Socket的用法——NIO包下SocketChannel的用法 ———————————————— 版权声明:本文为CSDN博主「茶&lowbar;小哥」的原创文章,遵循CC 4&period;0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https&colon;&sol;&sol;blog&period;csdn&period;net&sol;ycgslh&sol;article&sol;details&sol;79604074

    服务端代码实现如下,其中包括一个静态内部类Handler来作为处理器,处理不同的操作.注意在遍历选择键集合时,没处理完一个操作,要将该请求在集合中移除./*模拟服务端-nio-Socket实现*/pu ...

  6. 转:Java面试题集(51-70) http&colon;&sol;&sol;blog&period;csdn&period;net&sol;jackfrued&sol;article&sol;details&sol;17403101

    Java面试题集(51-70) Java程序员面试题集(51-70) http://blog.csdn.net/jackfrued/article/details/17403101 摘要:这一部分主要 ...

  7. Win32消息循环机制等【转载】http&colon;&sol;&sol;blog&period;csdn&period;net&sol;u013777351&sol;article&sol;details&sol;49522219

    Dos的过程驱动与Windows的事件驱动 在讲本程序的消息循环之前,我想先谈一下Dos与Windows驱动机制的区别: DOS程序主要使用顺序的,过程驱动的程序设计方法.顺序的,过程驱动的程序有一个 ...

  8. 梧桐那时雨http&colon;&sol;&sol;blog&period;csdn&period;net&sol;fuchaosz&sol;article&sol;details&sol;51882935&quest;readlog

    Ubuntu 16.04 一系列软件安装命令,包括QQ.搜狗.Chrome.vlc.网易云音乐安装方法 原创 2016年07月20日 11:44:01 标签: ubuntu 27024 1 简介 Ub ...

  9. matlab 降维工具 转载【https&colon;&sol;&sol;blog&period;csdn&period;net&sol;tarim&sol;article&sol;details&sol;51253536】

    降维工具箱drtool   这个工具箱的主页如下,现在的最新版本是2013.3.21更新,版本v0.8.1b http://homepage.tudelft.nl/19j49/Matlab_Toolb ...

随机推荐

  1. array&lowbar;map&lpar;&rpar;与array&lowbar;shift&lpar;&rpar;搭配使用 PK array&lowbar;column&lpar;&rpar;函数

    array_map()与arra_shift()搭配使用,还是来看例子吧,比较直观一点 <?php $user = array( 0 => array( 'name' => '张三' ...

  2. 10 DelayQueue 延时队列类——Live555源码阅读&lpar;一&rpar;基本组件类

    这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 www.cnblogs.com/oloroso/ 本文由乌合 ...

  3. &lbrack;leetcode&rsqb;Second Highest Salary

    找第二大 # Write your MySQL query statement below SELECT MAX(Salary) FROM Employee WHERE Salary NOT IN ( ...

  4. android媒体文件扫描

    项目中可能有这样的需求:下载或导入.导出的图片.音乐等媒体文件,需要马上能在图库或本地视屏播放器中显示出来,或者要能在媒体数据库中查询到媒体文件的相关信息,这时我们就得主动通知系统扫描新的媒体文件了. ...

  5. &period;NET设计模式(15):结构型模式专题总结(转)

    摘要:结构型模式,顾名思义讨论的是类和对象的结构,它采用继承机制来组合接口或实现(类结构型模式),或者通过组合一些对象,从而实现新的功能(对象结构型模式).这些结构型模式,它们在某些方面具有很大的相似 ...

  6. java亦或(&Hat;)

    在java程序里面的异或用法: 相同输出0,不同输出1,例如: System.out.println(1^1); 输出0 System.out.println(1^2):输出3,因为最后2个低位都不一 ...

  7. electron-vue 初体验

    注意事项 首先确保node和npm是最新版本 避免使用镜像(我淘宝镜像安装有报错现象) 避免window的一些坑 若上一项检查完成,我们可以继续设置所需的构建工具.使用 windows-build-t ...

  8. TGI

    淘宝的很多分析会用到TGI这个指标,但是是如何计算的以及该如何理解和应用这个指标?TGI:即Target Group Index(目标群体指数)TGI指数= [目标群体中具有某一特征的群体所占比例/总 ...

  9. 03-三层交换机的OSPF实验

    三层交换机的OSPF实验 1.OSPF介绍 开放式最短路径优先(英语:Open Shortest Path First,缩写为 OSPF)是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故 ...

  10. 【BZOJ5020】【THUWC2017】在美妙的数学王国中畅游 LCT 泰勒展开

    题目大意 给你一棵树,每个点有一个函数\(f(x)\) 正弦函数 \(\sin(ax+b) (a\in[0,1],b\in[0,\pi],a+b\in[0,\pi])\) 指数函数 \(e^{ax+b ...