三层代码的bll dal 层优化
一提到三层架构,就让我想到为了完成基于活动记录开发模式之数据库的crud工作,需要为所有的表去实现的最基本的 add/update/delete/select/selectPage;这些都是重复代码,当时的解决方法就是代码生成器,有了代码生成器,就可以不用去面对这些重复代码。
这里我通过泛型基类来去掉我们的重复代码,先看看改造前的dal层写法“
是吧,这就是经典的dal层写法,我们可以看到增删改查的几个代码
再看看改造后的代码
重点看BaseRepo<Words> 这个是通过泛型实现的基类,代码如图:
这个是我中转实现的,用来完成DapperRepository的构造函数需要的2个参数,这样我的每个表都不需要重复去给构造参数了,因没引入ioc,所以直接给出new 实例而不是构造注入的方式
具体看github上的dapper poco的仓储实现 http://dapper.phnx47.net/
对应的 dll引用:
Install-Package MicroOrm.Dapper.Repositories
bll层也可以类似的完成这样的基类功能,不需要每个都写 add谢谢/。
转载于:https://www.cnblogs.com/smboy/p/6871294.html
三层代码的bll dal 层优化相关推荐
- MVC项目实践,在三层架构下实现SportsStore-01,EF Code First建模、DAL层等
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...
- winform 三层(BLL.DAL.MODEL)
数据库设计相当简单,就一个数据库然后又张存着用户名和密码的表. 数据库设计: 数据库名称:threeLayer 表: users 列:1.username 账号 2.password 密码 数据 ...
- C#_三层(BLL DAL Model)架构详解
C#_三层架构详解 三层架构: 表现层(UI).业务逻辑层(BLL).数据访问层(DAL)再加上实体类库(Model) 表现层(UI):一般都是窗体的设计或者网页的设计,是可以一眼就可以看到的界面. ...
- C#三层架构第四课之DAL层
DAL层的方法基本与BLL层一致,前期可以这么做,简单易于理解,后期BLL一个方法可能包含若干个DAL的方法. 参考代码如下: using System; using System.Collectio ...
- C# 三层架构搭建详解(BLL DAL Model)
C# 三层架构搭建详解(BLL DAL Model) 1.建立好方案 在方案上右键 用上面的方法添加三个类库:DAL(数据访问层) BLL(业务逻辑层) Model(模型层) 注意要按顺序添加引用 D ...
- 三层架构之业务逻辑层(BLL)
一.BLL :针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理. 1.模板: windows->类库 2. 引用: Model.DAL 3.原则:一个Service对应一个Man ...
- 基础才是重中之重~如何整理BLL与DAL层的文件
最近在项目重构过程中,发现项目比较乱,项目中的类文件遍及了整个项目文件夹中,为此,我觉得有必要把它们整理一下,我的作法是: 详细划分: BLL层:根据业务或者领域进行划分,如用户业务,财务业务,产品业 ...
- 三层架构之数据访问层(DAL)
一. DAL层 1..模板: windows->类库 2.引用: Model configuration 3. 原则:一个实体一个Service类; SqlHelper (配置文件:连接字符串 ...
- 企业级应用架构(三)三层架构之数据访问层的改进以及测试DOM的发布
在上一篇我们在宏观概要上对DAL层进行了封装与抽象.我们的目的主要有两个:第一,解除BLL层对DAL层的依赖,这一点我们通过定义接口做到了:第二,使我们的DAL层能够支持一切数据访问技术,如Ado.n ...
- 企业级应用架构(二)三层架构之数据访问层的封装与抽象
在上一篇我们知道,要解除BLL对DAL的依赖,我们就必须抽象出DAL层的接口,同时基于DAL的数据访问技术很多,如EF,ADO.NET,LINQ TO SQL,因此,我们的数据访问层必须对这些技术提供 ...
最新文章
- 设置Sysctl.conf用以提高Linux的性能(最完整的sysctl.conf优化方案)
- 四旋翼飞行器旋转矩阵公式推导!
- php header x-auth-token,使用Angular 2正确设置Header X-Auth-Token
- session开启慢的原因及解决办法
- PyTorch基础(十)----- torch.max()方法
- vc使用opencv库 读取图像
- Application.mk
- html的页面宽高变形问题,CSS+div 设计的网页在不同浏览器中变形的问题
- ubuntu mysql开发_Ubuntu下进行基于MySQL的JDBC的开发
- 巨人网络305亿并购海外棋牌类游戏公司审核遭暂停
- won10 mysql 5.7.22主从同步
- Android中的文字占位符
- antd vue 位置变动 固钉消失_使用vue封装固钉Affix组件,滚动条到底部时自动吸附,离开底部时自动相对窗口固定...
- wps下一步快捷键_WPS的快捷键有哪些
- vue集成wangeditor3.0版本 解决光标乱跳等问题
- 诺禾-蛋白表达纯化之通关技巧
- C++之一些事一些情--写在前面
- requests模块用法举例
- ethereum-etl学习2
- 计算机组成原理3.6高速缓冲存储器Cache
热门文章
- 微服务架构实战篇(二):Spring boot2.0 + Swagger2 让你的API可视化
- linux分区用来支持虚拟内存,Linux分区方案
- c语言中运用空语句的延时函数,【转载】单片机C语言中_nop_函数的使用及C语言的延时计算...
- Matlab函数——wgn
- java 数学公式解析_JAVA 文本表达式解析成数学公式,计算出结果
- 编码基本功:以文件大小进行性能测试是错误的
- LINUX SHELL中for用数组循环
- Linux系统剪贴板getContents()非常之慢
- 吾是否有“受迫害妄想症”之反省
- 管理感悟:管理人员要不要技术好