一步一步搭建开发框架(五)单元工作模式
2014-09-27 16:55
176 查看
1,单元工作模式主要为了提高与数据库的交互次数,提高应用程序效率。我们知道实际的业务操作中,有时需要好几张表一快保存,一块删除之类的逻辑,比如注册用户之后,用户表要加一条数据,积分表等与用户表有外键关系的表可能也需要保存数据,这样造成多次保存,也就是多次与数据库交互。 2,前边我把SaveChange()方法都写到了BaseDal里面,今晚上就把这个SaveChange方法提取出来!我们继续封装一个DbSession类,同时将抽象工厂的代码转移到这个DbSession类中。 View Code 从代码上可以看到,SaveChange()方法写在了DbSession类中,在上一篇博客中已经对EF上下文实例进行了管理,所以SaveChange方法中的上下文对象就是我们当前线程中的上下文对象,通过在业务逻辑层由我们自己控制什么时候业务逻辑处理完成,什么时候调用SaveChange方法。做到批量提交的效果。
3,SaveChange方法被调用时会启动一个事务,一条保存失败,所有数据都保存失败。所以,我们就可以将BaseDal中的SaveChange方法全部删除,在业务逻辑层根据Savechange的结果,自己判断是否保存成功。 4,还有个问题,由于DbSession中封装了所有的Dal,所以DbSession的实例也要维护一下,否则如果创建多个DbSession类的话,会造成大量Dal实例的创建,同时由于获取Dal的实例是通过反射获取的,如果不维护一下,会造成大量性能的浪费! 5,DbSession类线程内实例唯一。通过简单工厂和CallContext类实现,与EF上下文实例管理类似。
View Code 6,这个时候业务逻辑层获取DbSession类的代码就变成了: View Code 到此:数据库访问层的代码基本处理完成!
3,SaveChange方法被调用时会启动一个事务,一条保存失败,所有数据都保存失败。所以,我们就可以将BaseDal中的SaveChange方法全部删除,在业务逻辑层根据Savechange的结果,自己判断是否保存成功。 4,还有个问题,由于DbSession中封装了所有的Dal,所以DbSession的实例也要维护一下,否则如果创建多个DbSession类的话,会造成大量Dal实例的创建,同时由于获取Dal的实例是通过反射获取的,如果不维护一下,会造成大量性能的浪费! 5,DbSession类线程内实例唯一。通过简单工厂和CallContext类实现,与EF上下文实例管理类似。
View Code 6,这个时候业务逻辑层获取DbSession类的代码就变成了: View Code 到此:数据库访问层的代码基本处理完成!
相关文章推荐
- 一步一步开发sniffer(Winpcap+MFC)(三)安得广厦千万间,先画蓝图再砌砖——搭建winpcap抓包框架
- Spring MVC 4.1.3 + MyBatis 零基础搭建Web开发框架(注解模式哦)
- Spring MVC 4.1.3 + MyBatis 零基础搭建Web开发框架(注解模式)
- MVP模式开发之项目框架的搭建
- 开发模式 MVP - 基础框架搭建和分析
- (*****)Spring MVC 4.1.3 + MyBatis 零基础搭建Web开发框架(注解模式哦)
- ASP.NET Mvc实用框架(一)Ioc、仓储模式和单元工作模式
- Spring MVC 4.1.3 + MyBatis 零基础搭建Web开发框架(注解模式哦)
- Spring MVC 4.1.3 + MyBatis 零基础搭建Web开发框架(注解模式哦)
- FreeBook 基于 MVP 模式开发的带缓存网络爬虫,采用最流行框架搭建,干货多多
- 手工搭建基于ABP的框架 - 工作单元以及事务管理
- 基于DDD的.NET开发框架 - ABP工作单元(Unit of Work)
- 从零开始搭建 一个完善的 MVP模式开发框架(一),MVP模式的简单介绍篇
- Spring MVC + MyBatis+Maven 零基础搭建Web开发框架(注解模式哦)
- Spring MVC 4.1.3 + MyBatis 零基础搭建Web开发框架(注解模式哦)
- ABP(现代ASP.NET样板开发框架)系列之12、ABP领域层——工作单元(Unit Of work)
- Spring MVC 4.1.3 + MyBatis 零基础搭建Web开发框架(注解模式哦)
- Spring MVC 4.1.3 + MyBatis零基础搭建Web开发框架(注解模式)
- 一步一步学FRDM-KE02Z(一):IAR调试平台搭建以及OpenSDA两种工作模式设置
- 一步一步开发sniffer(Winpcap+MFC)(三)安得广厦千万间,先画蓝图再砌砖——搭建winpcap抓包框架