一、Dapper是什么?
Dapper是一款开源的轻量级ORM工具,源代码下载地址为https://github.com/StackExchange/dapper-dot-net
二、Dapper的优点
1、轻量。
只有一个文件(SqlMapper.cs),编译完成之后只有120k(好象是变胖了)2、速度快。
Dapper的速度接近与IDataReader,取列表的数据超过了DataTable。3、支持多种数据库。
Dapper可以在所有Ado.net Providers下工作,包括sqlite, sqlce, firebird, oracle, MySQL, PostgreSQL and SQL Server可以映射一对一,一对多,多对多等多种关系。4、性能高。通过Emit反射IDataReader的序列队列,来快速的得到和产生对象,性能不错。支持FrameWork2.0,3.0,3.5,4.0,4.5等
三、安装Dapper
1、通过NuGet方式安装(推荐)
VS中执行 install-package Dapper进行安装引用
2、直接在GitHub下载源码
只要把Dapper文件夹拉出来然后复制到我们的项目中就可以了
四、Dapper简单用法
1、定义实体
class School{ /* 若属性名和数据库字段不一致(不区分大小写)则查询不出数据,如果使用EF则可以通过Column特性 建立属性和数据表字段之间的映射关系,Dapper则不行 */ //[Column("Name")] public string Title { set; get; } public string Address { set; get; }}
class Student{ public string Name { set; get; } public string Number { set; get; } public int SchoolId { set; get; }}
2、基本用法
const string _connectionString = "Database=Dapper;Data Source=127.0.0.1;User Id=root;Password=root;pooling=false;CharSet=utf8;port=3306;";using (IDbConnection dbConnection = new MySqlConnection(_connectionString)){ dbConnection.Open(); //通过匿名类型插入单条数据 dbConnection.Execute("insert into t_schools(Name,Address) values(@Name,@Address)", new { Name = "西南大学", Address = "重庆市北碚区天生路2号" }); //批量插入数据 List<School> schools = new List<School>() { new School() {Address="China·BeiJing",Title="清华大学" }, new School() {Address="杭州",Title="浙江大学" }, new School() {Address="不知道,US?",Title="哈弗大学" } }; //在执行参数化的SQL时,SQL中的参数(如@title可以和数据表中的字段不一致,但要和实体类型的属性Title相对应) dbConnection.Execute("insert into t_schools(Address,Name) values(@address,@title);", schools); //通过匿名类型批量插入数据 dbConnection.Execute("insert into t_schools(Address,Name) values(@address,@name)", new[] { new {Address="杨浦区四平路1239号",Name="同济大学"}, new {Address="英国",Name="剑桥"}, new {Address="美国·硅谷",Name="斯坦福大学"} });}