博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2015.10.14-TransactionScope测试
阅读量:6261 次
发布时间:2019-06-22

本文共 1065 字,大约阅读时间需要 3 分钟。

测试代码:

int i = 10;int xx = 20;List
lst = null;Action doSth = () =>{ using (var db = new TestSystemEntities()) { var f = db.ABC.ToList(); f.ForEach(x => x.C = "TestTransactionScope"); db.SaveChanges(); } new Task(() => { using (var db = new TestSystemEntities()) { var f = db.ABC.ToList(); f.ForEach(x => x.C = "AsyncTestTransactionScope"); db.SaveChanges(); } }).Start(); i = 20; lst.Insert(0, "xx"); xx = 100;};try{ TransactionOptions tr = new TransactionOptions() { IsolationLevel = IsolationLevel.Serializable, Timeout = TransactionManager.MaximumTimeout }; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, tr)) { doSth(); scope.Complete(); }}catch (Exception ex){ Console.WriteLine("exception happens");}Console.WriteLine("i: {0}, xx: {1}", i, xx);

上面的代码,由于lst一直为null,当执行到lst.Insert的时候,会出现异常,触发事务回滚。

测试结论:回滚效果,同步SQL里面的操作回滚了,但内存中object并未回滚,异步的SQL里面也未回滚.

如图:

转载地址:http://qgqsa.baihongyu.com/

你可能感兴趣的文章
iOS---后台运行机制详解
查看>>
python-装饰器的最终形态和固定格式 语法糖
查看>>
iphone配置实用工具iPhone Configuration Utility
查看>>
Centos搭建开发环境,PHP7+ Nginx1.12+ Mysql5.7
查看>>
RSA的密钥把JAVA格式转换成C#的格式
查看>>
转载 HTTPS 之fiddler抓包、jmeter请求
查看>>
Android常用查询网站
查看>>
wifi diplasy流程介绍
查看>>
使用浏览器做编辑器
查看>>
【20181030T1】排列树【树形结构+组合数】
查看>>
windows&linux双系统时间相差8小时
查看>>
史上最详细的linux网卡ifcfg-eth0配置详解
查看>>
iphone-common-codes-ccteam源代码 CCUIScreen.m
查看>>
SDO_Geometry相关学习(转载)
查看>>
二叉查找(排序)树的分析与实现
查看>>
LeetCode-230. Kth Smallest Element in a BST
查看>>
js之隔行换色
查看>>
使用EMQ搭建MQTT服务器
查看>>
P3379 【模板】最近公共祖先(LCA)(树链剖分)版
查看>>
利用GCC编译器生成动态链接库和静态链接库
查看>>