Entity Framework 知识点总结
2013-11-24 21:13
190 查看
最近在学习EF.有很多不明白的地方,在查一些资料之后稍微明白了一些,这里记录下来.如果有错误欢迎指出.
ObjectStateManager类型的ObjectStateManager实例
.
在调用SaveChange的时候是调用ObjectStateManager的GetObjectStateEntriesCount方法获取到所有修改状态的实例(同时ObjectStateManager中也包含了多个字典.例如
,它们保存了所有进行过状态修改的对象.).接下来会将本身的this.Connection转换为EntityConnection对象connection
.并调用私有的IEntityAdapter类型的_adapter实例.将connection赋值为_adapter的connection属性.并创建一个事务(DbTransaction)的实例transaction.调用connection.BeginTransaction()方法返回一个事物实例赋值给transaction,使用transaction进行事物的操作.如果发生错误则直接抛出一个异常信息并不调用transaction的Commit方法
Q:EF在调用SaveChange的时候是使用事务吗?具体流程是什么?
A:是.在DBContext创建实例的时候同时会创建一个内部的
ObjectStateManager类型的ObjectStateManager实例
.
在调用SaveChange的时候是调用ObjectStateManager的GetObjectStateEntriesCount方法获取到所有修改状态的实例(同时ObjectStateManager中也包含了多个字典.例如
,它们保存了所有进行过状态修改的对象.).接下来会将本身的this.Connection转换为EntityConnection对象connection
.并调用私有的IEntityAdapter类型的_adapter实例.将connection赋值为_adapter的connection属性.并创建一个事务(DbTransaction)的实例transaction.调用connection.BeginTransaction()方法返回一个事物实例赋值给transaction,使用transaction进行事物的操作.如果发生错误则直接抛出一个异常信息并不调用transaction的Commit方法
相关文章推荐
- Android--模拟登陆用户名密码,使用File或openFileOutput保存文件
- 调试程序的部分功能最好不要在虚拟机上
- coco2d-x版的植物大战僵尸
- 委托示例(1)
- 软件工程视频(前四章小结-图)
- 迷惘
- linux下SVN服务搭建:apache+svn+usvn+php+mysql
- 文件输入输出操作
- 什么时候该用utf-8,什么时候用utf8
- Opencv2系列学习笔记4(灰度直方图)
- Mysql 创建,授权,删除,修改用户
- [Android开发实战]金山清理大师(猎豹清理大师)一键加速快捷方式动画实现
- 【Cocos2d-x】Win7+ vs2012,2010 + Cocos2d-x2.2 配置Cocos2d-X项目-环境
- ultraMaGE 分析二 消息响应
- COCOS2D-X 2.1.3没有CCListView,被CCTableView代替了
- 初学C语言者适合做的练习
- The 2013 ACM-ICPC Asia Changsha Regional Contest(2013区域赛练习)
- 定义Person(人)类,由Person分别派生出Teacher(教师)类和Cadre(干部)类,再由Teacher(教师)类和Cadre(干部)类采用多重继承方式派生出新类TeacherCadre(
- MySQL安装图解
- Codeforces Round #213 (Div. 2) B. The Fibonacci Segment