利用Dapper ORM搭建三层架构

摘要:
一个由Dapper关系对象映射器编写的简单的三层体系结构。这里,我们简单地调用Dapper中的方法。矮小利落的BLL:业务逻辑层的具体实现。DAL数据访问层:Dapper IDAL:数据访问层的抽象接口。DALFactory创建特定的DAL,ConnectionFactory为Dapper创建IDBConnection实例。应用程序。配置。无法在单元测试项目中直接读取控制台。

利用Dapper关系对象映射器写的简单的三层架构。
Dapper:StackOverFlow在使用的一个微型的ORM,框架整体效率较高,轻量级的ORM框架。网上有较多的扩展。此处只是简单的调用Dapper中的方法。
UI层:

  • Dapper.Console:一个简单的控制台程序。
  • BLL业务逻辑层:
  • Dapper.IBLL:业务逻辑层的抽象接口。
  • Dapper.BLL:业务逻辑层的具体实现。(会根据配置文件的不同调用不同的DAL层)
  • DAL数据访问层:
  • Dapper.IDAL:数据访问层的抽象接口。利于程序的扩展。
  • Dapper.SQLServerDAL:不同数据库的实现层,派生自IDAL接口。(可能还有OracleDAL、MySQLDAL等等)

实体类:

  • Dapper.Model:数据库实体类

解耦:

  • Dapper.Factory:工厂。通过工厂来创建对应的实例。DALFactory创建具体的DAL,ConnectionFactory创建供Dapper使用的IDBConnection实例。

单元测试:

  • Dapper.Test:进行数据库的单元测试。单元测试项目中无法直接读取Dapper.Console下的App.config。复制过来即可。

需要Mock测试的,可以参考使用MS Fakes、Moq等测试框架。

代码上不做具体展开了,需要的可以参考。

https://github.com/maoqyhz/3-Tier-Architecture-using-dapper

2018.1.8 很多人园友反应,目前代码中Connection的写法会导致数据库爆掉,需要注意!由于很久不写.net了,也无法做新的维护,所以本代码仅供参考吧,无法用于生产环境,特此说明!

由于自己的毕设也是用它来写的,所以放出来,可以作为一个实例来参考一下。

sql server2012 + dapper + asp.net mvc4 + easyUI的药库管理系统,有兴趣的可以star一下哦~

免责声明:文章转载自《利用Dapper ORM搭建三层架构》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇实验5【分享】管理者的观念:结果导向还是流程导向下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

国产达梦数据库及在.Net 下的增删改查 .NET .ORM

一,简介 偶然看到了国产数据库——达梦数据库。顿时起了兴趣,捣鼓了一番。 下面这段简介摘自百度百科 达梦数据库是武汉华工达梦数据库有限公司推出的具有完全自主知识产权的高性能数据库产品。它采用“三权分立”的安全管理机制,安全级别达到B1级,并在大数据量存储管理、并发控制、数据查询优化处理、事务处理、备份与恢复和支持SMP系统等诸多方面都有突破性进展和提高。更...

Django文件配置及orm

http协议 -特点:    1 基于TCP/IP协议之上的应用层协议    2 基于请求-响应模式    3 无状态保存    4 无连接 -请求头: 请求首行 get / http/1.1 key:value key:value 请求体的内容 -响...

Django的ORM常用查询操作总结(Django编程-3)

Django的ORM常用查询操作总结(Django编程-3) 示例:一个Student model: class Student(models.Model): name=models.CharField(max_length=10) sex = models.IntegerField(choices=((1,"男"),(2,"女")),de...

打造独特的ORM开发框架

ORM一直是长久不衰的话题,各种重复造轮子的过程一直在进行,轮子都一样是圆的,你的又有什么特点呢? CRL这个轮子造了好多年,功能也越来越标准完备,在开发过程中,解决了很多问题,先上一张脑图描述CRL的功能 开发框架的意义在于 开发更标准,更统一,不会因为不同人写的代码不一样 开发效率更高,无需重新造轮子,重复无用的代码,同时简化开发流程 运行效率得到...

Django——orm概述及在django中使用

一、orm概述1 orm:对象关系映射(跟语言无关) 数据库中的表 ----》对应程序的一个类 数据库中的一行数据----》对应程序中的一个对象 2 python中常见orm框架 -django的orm框架 -sqlachemy orm框架 3 java:(扩展),java中写web项目...

Djano之数据库--ORM

https://www.cnblogs.com/xiaonq/p/10959010.html#i5 一、建立数据库模型类   1.在model里创建模型类。(继承models.Model) 1 class Order(models.Model): 2 TYPE_CHOICE = ( 3 (0, u"普通运单"), 4...