1. /// <summary>
  2. /// EF事务封装 公用类
  3. /// </summary>
  4. public class TransactionCommon
  5. {
  6. DbContextTransaction Transaction = null;
  7. /// <summary>
  8. /// 数据库连接
  9. /// </summary>
  10. private readonly DefaultDbContext _DbContext = new DefaultDbContext();
  11.  
  12. /// <summary>
  13. /// 开始事务
  14. /// </summary>
  15. public void BeginTransaction()
  16. {
  17.  
  18. if (Transaction == null)
  19. {
  20. _DbContext.Database.BeginTransaction();
  21. }
  22.  
  23. }
  24.  
  25. /// <summary>
  26. /// 提交一个事务
  27. /// </summary>
  28. /// <returns></returns>
  29. public int Commit()
  30. {
  31. int result = ;
  32. if (Transaction == null)
  33. {
  34. result += _DbContext.SaveChanges();
  35.  
  36. DbContextTransaction transaction = _DbContext.Database.CurrentTransaction;
  37. if (transaction != null)
  38. {
  39. transaction.Commit();
  40. transaction.Dispose();
  41. result += ;
  42. }
  43.  
  44. }
  45. return result;
  46. }
  47.  
  48. /// <summary>
  49. /// 回滚一个事务
  50. /// </summary>
  51. public void Rollback()
  52. {
  53.  
  54. if (Transaction == null)
  55. {
  56.  
  57. DbContextTransaction transaction = _DbContext.Database.CurrentTransaction;
  58. if (transaction != null)
  59. {
  60. transaction.Rollback();
  61. transaction.Dispose();
  62. }
  63. }
  64. else
  65. {
  66. throw new Exception("事务异常");
  67. }
  68. }
  69.  
  70. }

EF事务处理封装公用的更多相关文章

  1. Node Mysql事务处理封装

    node回调函数的方式使得数据库事务貌似并没有像java.php那样编写简单,网上找了一些事务处理的封装并没有达到自己预期的那样简单编写,还是自己封装一个吧.封装的大体思路很简单:函数接受一个事务处理 ...

  2. vue封装公用弹出框方法,实现点击出现操作弹出框

    vue封装公用弹出框方法,实现点击出现操作弹出框 如上图所示,这次要实现一个点击出现操作弹框的效果:并将这个功能封装成一个函数,便于在项目的多个地方使用. 具体思路是: 封装一个组件,组件保护一个插槽 ...

  3. MVC,EF 小小封装

    1.项目中经常要用到 EF,有时候大多数的增删改查都是重复性的东西,本次封装就是为了快速开发,期间没有考虑到架构上的各种思想,就感觉到欠缺点什么东西所以这次将这些拉出来,有存在问题的话还请各位多多指导 ...

  4. EF 底层封装方法(供参考)

    闲暇之余,整理了一下EF底层的一些基础方法,供查看,只有接口,具体实现需要你们自己写了. 建议:接口的实现定义为虚方法,当父类的方法不满住子类需求时,可以重写此方法 此接口都为公用方法,基本上满足小系 ...

  5. EF Core 封装方法Expression<Func<TObject, bool>>与Func<TObject, bool>区别

    unc<TObject, bool>是委托(delegate) Expression<Func<TObject, bool>>是表达式 Expression编译后就 ...

  6. vue 封装公用函数

    Vue 函数封装 格式化浏览器时间 /** * 格式化时间 * @param params * @param blo 默认为true * @returns {string} * @constructo ...

  7. EF 事务处理 (InnoDB Engine的MySQL表也可以)

    备忘 1. 亲测(可以嵌套使用) using (TransactionScope scope = new TransactionScope()) { //操作1 XXEntities.Current. ...

  8. 对EF的封装

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  9. ef group 封装

    表达式树,传递 group public class Test<T> where T : class { MoviesEntities db = new MoviesEntities(); ...

随机推荐

  1. Java Web自定义MVC框架详解 (转)

    转自:http://blog.csdn.net/jackfrued/article/details/42774459 最近给学生讲Java Web,希望他们能够在学完这部分内容后自己实现一个MVC框架 ...

  2. QTableView中使用Delegate方式来实现对特定列的文本进行换行

    问题:由于表格的一个列中,有个别文本过长,默认情况下,QTableView不支持对某列的文本换行,所以需要通过Delegate方式来实现这样的效果 头文件的Delegate #pragma once ...

  3. Swift3 颜色转换成图片Image

    Swift3下的转换写法: /// 将颜色转换为图片 /// /// - Parameter color: <#color description#> /// - Returns: < ...

  4. java节假日api--关于节假日想到的

    http://goseek.cn/index.php. 跟一园友讨论节假日问题得之一网址...涨姿势...(仅限中国节假日) http://api.goseek.cn/ 另一网友整理了测试类: htt ...

  5. 实现iOS序列化与反序列化(runtime)

    一.变量声明 为便于下文讨论,提前创建父类Biology以及子类Person: Biology: @interface Biology : NSObject { NSInteger *_hairCou ...

  6. linux下常用文件传输命令(转)

    因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp, ...

  7. ubuntu源列表(清华,阿里,官方,选一即可)

    Ubuntu的源列表在/etc/apt/sources.list中,替换即可 #清华的源deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial m ...

  8. NoSQL 非关系数据库

    NoSQL 数据库的学习 Redis的Windows版本安装 待整理 redis 安装 关于分布式的网站介绍 NOSQL 几个网页 认识MongoDB Mongodb实现副本集和Mongodb副本集的 ...

  9. 专注做好一件事(转) focus---这个世界上最成功的人,他们在某一领域获得成功之后,可通过经营杠杆进入任何他们想要涉足的领域。而这都得依赖于他们曾极致的专注在做好一件事情上。

  10. Android Studio 遇到 No Debuggable Applications 的解决方案

    一.在菜单的Tools -> Android -> 勾选 Enable ADB Integration 二.在工程的build.gradle(Module:app)里加上一行代码