transactionscope mysql_TransactionScope事务操作

transactionscope mysql_TransactionScope事务操作using(TransactionScopetrans=newTransactionScope()){try{InsertUserBase();//它插入不成功,自己回滚UserInfosuserInfo=newUserInfos{UserID=”1″,RealName=”zzl”,};db.UserInfos.InsertOnSubmit(userInfo);db.SubmitC…

大家好,又见面了,我是你们的朋友全栈君。

using (TransactionScope trans = newTransactionScope())

{try{

InsertUserBase();//它插入不成功,自己回滚

UserInfos userInfo= newUserInfos

{

UserID= “1”,

RealName= “zzl”,

};

db.UserInfos.InsertOnSubmit(userInfo);

db.SubmitChanges();

trans.Complete();

}catch(Exception)

{//throw;

}finally{

trans.Dispose();

}

}#endregion

static boolInsertUserBase()

{boolflag;try{

UserBases userbase= newUserBases

{

UserID= “0005”,

Name= “zzl”,

CreateDate=DateTime.Now,

UpdateDate=DateTime.Now,

};

db.UserBases.InsertOnSubmit(userbase);

db.SubmitChanges();

flag= true;

}catch(Exception)

{throw;

}returnflag;

}

InsertUserBase()只要出现异常,程序将自己回滚

using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, newTransactionOptions

{

IsolationLevel=System.Transactions.IsolationLevel.ReadCommitted,

Timeout= new TimeSpan(0, 10, 0)

}, TransactionScopeAsyncFlowOption.Enabled))

one or more errors occurred(The current TransactionScope is already complete)

如果你正在使用TransactionScope和async/await在一起,你真的应该升级到4.5.1 .NET马上。

一个TransactionScope包装异步代码需要指定TransactionScopeAsyncFlowOption.Enabled在其构造。

TransactionOptions option = new TransactionOptions() { Timeout = new TimeSpan(0, 10, 0), IsolationLevel = IsolationLevel.ReadCommitted };

using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, option, TransactionScopeAsyncFlowOption.Enabled))

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161929.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jupyternotebook和pycharm的区别_jupyternotebook和pycharm的区别

    jupyternotebook和pycharm的区别_jupyternotebook和pycharm的区别在PyCharm环境中使用JupyterNotebook

    2022年8月26日
    3
  • anaconda是什么东西_anaconda jupyter

    anaconda是什么东西_anaconda jupyter2020/5/18一、Anaconda有什么用?是一个安装、管理python相关包的软件,还自带python、JupyterNotebook、Spyder,有管理包的conda工具,非常有用。

    2022年8月5日
    5
  • java 测试程序代码运行时间过长_Java测试

    java 测试程序代码运行时间过长_Java测试突然想准确的测试一下Java代码的执行时间,在网上找了一会。发现基本有以下两种方法:第一种是以毫秒为单位计算的。Java代码//伪代码  long startTime=System.currentTimeMillis();   //获取开始时间  doSomeThing();  //测试的代码段  long endTime=System.currentTime

    2022年10月18日
    1
  • QListWidget 布局方向设定

    QListWidget 布局方向设定//我们看下官方文档的说明//创建一个QListWidgetQListWidget m_list //假如m_list添加了很多子项(一个子项由一个图片和一段文字组成) //如果设置为m_second_list->setViewMode(QListView::IconMode); //那么m_list子项就会从左到右横向的排列

    2022年6月5日
    137
  • Linux的vi命令用法大全_linux top命令详解

    Linux的vi命令用法大全_linux top命令详解vi共分为三种模式:分别是一般模式,编辑模式与命令行模式一般模式:以vi打开一个文件就直接了一般模式(这是默认的模式)编辑模式:在指令模式下输入的按键“i,I,o,O,a,A,r,R”,vi即认为是在当前位置插入字符。而在输入模式下,vi则把输入的按键当作插入的字符来处理。指令模式切换到输入模式只需键入相应的输入命令即可(如a,A),而要从输入模式切换到指令模式,则需在输入模式下键入…

    2022年9月22日
    3
  • Java dom4j生成和解析XML

    Java dom4j生成和解析XMLdom4j使用:需先导入dom4j对应的jar,本章用的是dom4j-1.6.1.jar优点:DOM4J使Java开发的灵活性和XML解析代码易于维护dom4j相关操作类Document:表示整个xml文档,是一个树形结构Eelment:表示一个xml的元素,提供方法操作其子元素,它的文本,属性和名称空间Attribute:表示元素的属性Node:表示元素,属性do…

    2022年6月21日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号