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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux安装MySQL8.0.11

    Linux安装MySQL8.0.111.去官网下载安装包下载链接:点击打开链接https://dev.mysql.com/downloads/mysql/如果你的系统是32位选择第一个,64位选择第二个也可以用wget下载wgethttps://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-i686.tar.gz…

    2022年5月29日
    37
  • 一阶惯性环节pid参数整定_一阶惯性环节转折频率

    一阶惯性环节pid参数整定_一阶惯性环节转折频率//—————————————————————————#ifndefUnit1H#defineUnit1H//—————————————————————————#include#in

    2022年10月4日
    6
  • CreateMutex WaitForSingleObject ReleaseMutex使用「建议收藏」

    CreateMutex WaitForSingleObject ReleaseMutex使用「建议收藏」HANDLECreateMutex( LPSECURITY_ATTRIBUTESlpMutexAttributes,// BOOLbInitialOwner, //flagforinitialownership LPCTSTRlpName    //pointertomutex-objectname );

    2022年6月26日
    28
  • Win7系统解决无法打开任务管理器「建议收藏」

    Win7系统解决无法打开任务管理器「建议收藏」Win7系统解决无法打开任务管理器有时候在使用Win7系统过程中会出现无法打开任务管理器的情况,以下内容给出几种常见的打开任务管理器的方式以及无法启动任务管理器时的简单解决方案。Win7系统解决无法打开任务管理器常用打开任务管理器的方式一、快捷键方式二、命令行方式解决方案常用打开任务管理器的方式一、快捷键方式Ctrl+Alt+DelCtrl…

    2022年6月22日
    30
  • VMware虚拟机开启导致宿主机蓝屏

    VMware虚拟机开启导致宿主机蓝屏开启虚拟机的虚拟化后,运行VMware中虚拟机导致win10蓝屏备注;win10家庭中文版20H2+VMware16.0由于需要开启虚拟化功能,运行VMware中的eve虚拟机。且eve虚拟机也要开启虚拟化才能运行qemu镜像。1.但是开启eve的虚拟化后,虚拟机无法打开,解决方案:1.cmd管理员身份打开,输入Msinfo32,查看是否关闭基于虚拟化的安全性。如果未关闭输入bcdeditset/hypervisorlaunchtypeoff,然后重启。下面在控制面板取消勾选

    2022年8月21日
    18
  • 5 . 4 . 3 架构

    5 . 4 . 3 架构

    2022年4月3日
    51

发表回复

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

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