您的位置:首页 > 其它

一步一步搭建开发框架(五)单元工作模式

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 到此:数据库访问层的代码基本处理完成!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐