一提到三层架构,就让我想到为了完成基于活动记录开发模式之数据库的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 层优化相关推荐

  1. MVC项目实践,在三层架构下实现SportsStore-01,EF Code First建模、DAL层等

    SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...

  2. winform 三层(BLL.DAL.MODEL)

    数据库设计相当简单,就一个数据库然后又张存着用户名和密码的表. 数据库设计: 数据库名称:threeLayer 表: users 列:1.username 账号   2.password  密码 数据 ...

  3. C#_三层(BLL DAL Model)架构详解

    C#_三层架构详解 三层架构: 表现层(UI).业务逻辑层(BLL).数据访问层(DAL)再加上实体类库(Model) 表现层(UI):一般都是窗体的设计或者网页的设计,是可以一眼就可以看到的界面. ...

  4. C#三层架构第四课之DAL层

    DAL层的方法基本与BLL层一致,前期可以这么做,简单易于理解,后期BLL一个方法可能包含若干个DAL的方法. 参考代码如下: using System; using System.Collectio ...

  5. C# 三层架构搭建详解(BLL DAL Model)

    C# 三层架构搭建详解(BLL DAL Model) 1.建立好方案 在方案上右键 用上面的方法添加三个类库:DAL(数据访问层) BLL(业务逻辑层) Model(模型层) 注意要按顺序添加引用 D ...

  6. 三层架构之业务逻辑层(BLL)

    一.BLL :针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理. 1.模板: windows->类库 2. 引用: Model.DAL 3.原则:一个Service对应一个Man ...

  7. 基础才是重中之重~如何整理BLL与DAL层的文件

    最近在项目重构过程中,发现项目比较乱,项目中的类文件遍及了整个项目文件夹中,为此,我觉得有必要把它们整理一下,我的作法是: 详细划分: BLL层:根据业务或者领域进行划分,如用户业务,财务业务,产品业 ...

  8. 三层架构之数据访问层(DAL)

    一. DAL层 1..模板: windows->类库 2.引用: Model  configuration 3. 原则:一个实体一个Service类; SqlHelper (配置文件:连接字符串 ...

  9. 企业级应用架构(三)三层架构之数据访问层的改进以及测试DOM的发布

    在上一篇我们在宏观概要上对DAL层进行了封装与抽象.我们的目的主要有两个:第一,解除BLL层对DAL层的依赖,这一点我们通过定义接口做到了:第二,使我们的DAL层能够支持一切数据访问技术,如Ado.n ...

  10. 企业级应用架构(二)三层架构之数据访问层的封装与抽象

    在上一篇我们知道,要解除BLL对DAL的依赖,我们就必须抽象出DAL层的接口,同时基于DAL的数据访问技术很多,如EF,ADO.NET,LINQ TO SQL,因此,我们的数据访问层必须对这些技术提供 ...

最新文章

  1. 设置Sysctl.conf用以提高Linux的性能(最完整的sysctl.conf优化方案)
  2. 四旋翼飞行器旋转矩阵公式推导!
  3. php header x-auth-token,使用Angular 2正确设置Header X-Auth-Token
  4. session开启慢的原因及解决办法
  5. PyTorch基础(十)----- torch.max()方法
  6. vc使用opencv库 读取图像
  7. Application.mk
  8. html的页面宽高变形问题,CSS+div 设计的网页在不同浏览器中变形的问题
  9. ubuntu mysql开发_Ubuntu下进行基于MySQL的JDBC的开发
  10. 巨人网络305亿并购海外棋牌类游戏公司审核遭暂停
  11. won10 mysql 5.7.22主从同步
  12. Android中的文字占位符
  13. antd vue 位置变动 固钉消失_使用vue封装固钉Affix组件,滚动条到底部时自动吸附,离开底部时自动相对窗口固定...
  14. wps下一步快捷键_WPS的快捷键有哪些
  15. vue集成wangeditor3.0版本 解决光标乱跳等问题
  16. 诺禾-蛋白表达纯化之通关技巧
  17. C++之一些事一些情--写在前面
  18. requests模块用法举例
  19. ethereum-etl学习2
  20. 计算机组成原理3.6高速缓冲存储器Cache

热门文章

  1. 微服务架构实战篇(二):Spring boot2.0 + Swagger2 让你的API可视化
  2. linux分区用来支持虚拟内存,Linux分区方案
  3. c语言中运用空语句的延时函数,【转载】单片机C语言中_nop_函数的使用及C语言的延时计算...
  4. Matlab函数——wgn
  5. java 数学公式解析_JAVA 文本表达式解析成数学公式,计算出结果
  6. 编码基本功:以文件大小进行性能测试是错误的
  7. LINUX SHELL中for用数组循环
  8. Linux系统剪贴板getContents()非常之慢
  9. 吾是否有“受迫害妄想症”之反省
  10. 管理感悟:管理人员要不要技术好