大家好,我是大成子。今天学习ORM框架之dapper
介绍
dapper是一个简单的对象关系映射框架(ORM----Object Relation Mapping),它几乎与原始的ADO.NET 数据操作读取一样快(反正我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
可执行存储过程、增、删、改等操作。
此处以插入为例
MySqlConnection实现了DbConnection接口,当数据库发生改变时,可进行更改。
插入(单、多),更新(单、多),删除(单,多)均使用此方法
Query
Dapper Contrib插件
它是额外的插件,在dapper的基础上进一步封装了些许操作,使开发更为方便。
安装包之后,即可使用。
数据注释
ExplicitKey和Computed这两个属性后面遇到再阐述
基本方法
今日总结,皆为初步学习,有很多方法没有涉及到,具体后期在实践中总结。更多请关注我的微信公众号:dotNET学习天地 一起学习和进步。