Entity Framework 第二篇 事务
Entity Framework 事务
结合第一篇的代码
public class BaseRepository : ITransaction, IDisposable { private XFDbContext dbContext;
之所以将数据上下文抽离出来,而不是每次使用都using,这样做就是为了在调用的时候,满足是同一个上下文,因为同一个上下文是事务性质的,在提交之前,如果一旦有异常,所有操作都会回滚
public bool Del(string id) { bool result = false; BaseRepository respository = new BaseRepository(); respository.BeginTransaction(); try { //1.删除关系 string sqlStr_d = "delete from S_UserRoles where UserID=@UserIDd"; SqlParameter[] paras_d = { new SqlParameter("@UserIDd", id), }; respository.ExecuteSqlCommand(sqlStr_d, paras_d); //2.删除主表 respository.Delete<S_Users>(m => m.UserID == id); result = respository.Commit() > ; } catch (Exception ex) { respository.Rollback(); } finally { respository.Dispose(); } return result; }
思路是什么呢?
BeginTransaction()
更改IsTransaction属性,表示现在开始是一个实务操作,这样每一个单元操作都不会做提交
Commit()
做最后的提交,会判断一下存不存在DbContextTransaction,如果存在一并提交
Rollback()
也会判断一下存不存在DbContextTransaction,如果存在一并回滚
public void BeginTransaction() { if (dbContext.Database.CurrentTransaction == null) { dbContext.Database.BeginTransaction(); } this.IsTransaction = true; } public int Commit() { int reault = dbContext.SaveChanges(); this.IsTransaction = false; DbContextTransaction transaction = dbContext.Database.CurrentTransaction; if (transaction != null) { transaction.Commit(); transaction.Dispose(); reault += ; } return reault; } public void Rollback() { this.IsTransaction = false; DbContextTransaction transaction = dbContext.Database.CurrentTransaction; if (transaction != null) { transaction.Rollback(); transaction.Dispose(); } } public bool IsTransaction { get; private set; }
Entity Framework 第二篇 事务的更多相关文章
- 在Entity Framework中使用事务
继续为想使用Entity Framework的朋友在前面探路,分享的东西虽然技术含量不高,但都是经过实践检验的. 在Entity Framework中使用事务很简单,将操作放在TransactionS ...
- LinqToSql和ASP.NET Entity FrameWork 中使用事务
ASP.NET Entity FrameWork中: int flag = -1; if (this.URPmanagementEntities1.Connection.State != System ...
- (Entity framework 应用篇)把权限判断封装在数据库访问层
这里,我只是以一个例子,说一下简单权限控制,通过这个例子,大家可以设计庞大的权限管理层,把权限控制封装到数据库访问层,这样程序员就不用再写权限判断的代码了 首先,先看看我数据库DBContext的定义 ...
- Entity Framework 第九篇 关于自增列的事务处理
如果一个表带有自增列的,那么在事务处理的过程中,如果抑制了提交,自增的序号就不会得到,如果我们需要得到那怎么办呢?可以临时提交,但是既然提交了就要考虑到事务回滚,否则无法满足数据的一致性 public ...
- Entity Framework 4 数据事务操作
利用数据库链接进行事务操作 var db = ConnectionHelper.GetConn(ConnectionType.Write);//获取上下文 var conn = db.Connecti ...
- Entity Framework 第一篇
这段时间研究了orm框架EF 写一写研究的历程和心得 先贴上核心代码 public interface ITransaction { bool IsTransaction { get;} void B ...
- Entity Framework 的事务
一个db.SaveChanges()相当于一个事务,多个db.SaveChanges()保证操作完整性则需要使用事务 在Entity Framework 中使用事务,事务只会对数据库操作进行回滚,不会 ...
- Entity Framework的启动速度优化
最近开发的服务放到IIS上寄宿之后,遇到一些现象,比如刚部署之后,第一次启动很慢:程序放置一会儿,再次请求也会比较慢.比如第一个问题,可以解释为初次请求某一个服务的时候,需要把程序集加载到内存中可能比 ...
- [Programming Entity Framework] 第3章 查询实体数据模型(EDM)(一)
http://www.cnblogs.com/sansi/archive/2012/10/18/2729337.html Programming Entity Framework 第二版翻译索引 你可 ...
随机推荐
- JS练习 改变文本框状态
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- (转) Java读取文本文件中文乱码问题
http://blog.csdn.net/greenqingqingws/article/details/7395213 最近遇到一个问题,Java读取文本文件(例如csv文件.txt文件等),遇到中 ...
- 数据库中is null(is not null)与=null(!=null)的区别
在标准SQL语言(ANIS SQL)SQL-92规定的Null值的比较取值结果都为False,既Null=Null取值也是False.NULL在这里是一种未知值,千变万化的变量,不是“空”这一个定值! ...
- 如何把Eclipse工程import Exprot到Android Studio
http://jingyan.baidu.com/article/b87fe19e9e209f5218356808.html
- PAT乙级 1026. 程序运行时间(15)
1026. 程序运行时间(15) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 要获得一个C语言程序的运行时间, ...
- JSP-04- 实现数据的保存
.1 Session 一段时间内,单个客户与Web服务器的一连串相关的交换过程. Ø 4.1.1 应用的场景: 用户登录后保存用户状态 确定用户的唯一 Sessin.getId(); Ø ...
- StringTokenizer类
StringTokenizer是一个用来分隔String字符串的应用类. 1.构造函数 public StringTokenizer(String str) //构造一个用来解析str的String ...
- 阿里BCG重磅报告《人工智能,未来致胜之道》
阿里BCG重磅报告<人工智能,未来致胜之道> 阿里云研究中心.波士顿咨询公司以及Alibaba Innovation Ventures合作共同推出的<人工智能:未来制胜之道>这 ...
- [转]Dynamics AX and Generic collections of .Net
转自:http://blogs.msdn.com/b/emeadaxsupport/archive/2009/04/23/dynamics-ax-and-generic-collections-of- ...
- View Properties [AX 2012]
View Properties [AX 2012] Other Versions This topic has not yet been rated - Rate this topic Updated ...