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


相关推荐

  • CMD命令提示符窗口中的快捷键、小技巧和常用命令

    CMD命令提示符窗口中的快捷键、小技巧和常用命令快捷键:F1:按F1一次,命令提示符向后切换到已经执行过的命令字符。如果已经是最后的一条的命令,则不进行任何切换操作。例子:之前输入“dir”,按F1一次后自动输入d,按两次自动输入i,三次自动输入r。F2:按下此键后,会提示“输入可复制的字符数量”,此时直接按下上次输入命令中包含的字符(区分大小写)后命令提示符将自动输入到按键字符之前的上次输入的命令

    2022年4月5日
    84
  • 考核题2「建议收藏」

    6.springmvc的工作流程是什么?SpringMVC流程1、用户向服务端发送一次请求,这个请求会先到前端控制器DispatcherServlet(也叫中央控制器)。2、DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器。由此得知,该请求该由哪个Controller来处理(并未调用Controller,只是得知)3、DispatcherServlet调用HandlerAdapter处理器适配器,告诉处理器适配器应该要去执行哪个Controll

    2022年4月11日
    167
  • 小程序白屏问题和内存研究

    小程序白屏问题和内存研究

    2021年6月18日
    106
  • emwin显示中文的方法_emwin中文手册

    emwin显示中文的方法_emwin中文手册emwin显示中文

    2022年10月9日
    0
  • 3.RT-thread 项目实战–LED驱动及finsh组件调试

    3.RT-thread 项目实战–LED驱动及finsh组件调试RT-thread在19年12月份推出了一个很好用的工具RT-threadstdio,比Env更加的方便,接下来的代码开发我们就使用这个工具进行,不使用keil和IAR了。工具的一些配置和入门使用直接看官方的教学视频就可以了,这里我们不做过多的介绍,下面开始进入今天的正题。打开我们的软件后,点击文件–》新建–》RT-thread项目,然后取个项目名字,就叫temp_prj吧,然…

    2022年5月21日
    36
  • layui框架和vue哪个好_目前流行的9大前端框架[通俗易懂]

    layui框架和vue哪个好_目前流行的9大前端框架[通俗易懂]Vue(读音/vjuː/,类似于view)是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页应用提供驱动。

    2022年6月25日
    65

发表回复

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

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