轻量高效ORM之Dapper篇

18 篇文章 0 订阅
11 篇文章 0 订阅
大家好,我是大成子。今天学习ORM框架之dapper

介绍

dapper是一个简单的对象关系映射框架(ORM----Object Relation Mapping),它几乎与原始的http://ADO.NET 数据操作读取一样快(反正我http://ado.net已经忘完了╥__╥,以前用的最多是linq to sql和ef,不需要写sql语句,使用linq操作数据源),它负责数据库与编程语言之间的映射。

与EF的优劣

EF-------重量级ORM的代表

优点:

  • 面向对象式操作数据库。
  • 完全摆脱SQL 语句,不用关心SQL如何写,可移植性强。
  • 支持code first,开发人员可以完成且无需关心数据库,代码先行,极大节省开发成本。
  • 结合LINQ,开发效率高。
  • 跨数据库,易配置。
  • 与VS结合较好。

缺点:

  • 比较复杂,学习曲线复杂(官方文档丰富且杂)。
  • 不适合做统计查询(因为统计查询需要执行查询效率高)。
  • 对于多表查询或一些复杂的查询实现较为困难和复杂。
  • 自动生成的SQL语句复杂,效率低。
  • EF的Context上下文不是线程安全的(知识有限,不懂)。
  • 包和插件较为冗余(对于中小型项目来说),性能一般。

Dapper--------轻量级ORM的代表

优点:

  • 开源,轻巧(轻量级),编译后文件简单且小巧。
  • 支持主流数据库,MSSQL,MySQL,Oracle。
  • 执行效率高。
  • 学习较为方便

缺点:

  • 半自动ORM,需要开发人员自己写实体类┭┮﹏┭┮(可以借助实体类生成工具生成)。
  • 开发时间成本高,LINQ支持较弱。
  • 维护成本高,不支持Code first,开发人员除了要维护数据库中的表,还需要维护代码表中的映射对象。

Dapper安装

Nuget包安装管理器搜索,安装最新版本即可。

 

Dapper方法

Dapper使用以下几个方法扩展了我们的IDbConnection接口

  • Execute
  • Query
  • QueryFirst
  • QueryFirstOrDefault
  • QuerySingle
  • QuerySingleOrDefault
  • QueryMultiple

Execute

可执行存储过程、增、删、改等操作。

此处以插入为例

 

v2-99806676e1ab36ecf7c446b8845d9006_b.jpg

MySqlConnection实现了DbConnection接口,当数据库发生改变时,可进行更改。

插入(单、多),更新(单、多),删除(单,多)均使用此方法

Query

 

v2-29542fff75fa7a8de5066165d6bafbed_b.jpg

Dapper Contrib插件

它是额外的插件,在dapper的基础上进一步封装了些许操作,使开发更为方便。

 

v2-51fb4037d59d2af8b8f6ada800f57ca7_b.png

安装包之后,即可使用。

数据注释

 

v2-0248743607ac3b5d3efa83b7332ebcc0_b.jpg

ExplicitKey和Computed这两个属性后面遇到再阐述

基本方法

 

v2-e966308275784228982551258b58afb6_b.jpg

 

v2-7995dba86c825e818fbb48fbfb52a2ba_b.jpg

今日总结,皆为初步学习,有很多方法没有涉及到,具体后期在实践中总结。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值