1.为什么选择Dapper
1)轻量。
2)速度快。Dapper的速度接近与IDataReader,取列表的数据超过了DataTable。
3)支持多种数据库。Dapper可以在所有Ado.net Providers下工作,包括sqlite, sqlce, firebird, oracle, MySQL, PostgreSQL and SQL Server
4)可以映射一对一,一对多,多对多等多种关系。
5)性能高。通过Emit反射IDataReader的序列队列,来快速的得到和产生对象,性能不错。
6)支持FrameWork2.0,3.0,3.5,4.0,4.5
7)Dapper语法十分简单。并且无须迁就数据库的设计
2.使用教程
1)在配置文件web.config中添加连接字符串
2)获取连接数据库对象
获取Sql Server的连接数据库对象:SqlConnection
获取MySql的连接数据库对象:MySqlConnection
封装
3)实体类
4)增删改查
3.防止Sql注入
这要用到了Dapper的DynamicParameters动态参数集合类,从上面可以看到可以能过Add方法加入参数。最后通过conn.Query(sqlText, p)执行sql,,返回结果。因为用的是命令参数的形式,让sql注入无机可乘,所以这种方案是安全的。
4.操作事物
1 [TestMethod]2 public voidTestDapperTransaction()3 {4 using (var conn = new MySql.Data.MySqlClient.MySqlConnection("server=localhost;User Id=root;password=root;Database=test"))5 {6 conn.Open();7 IDbTransaction trans =conn.BeginTransaction();8 int row = conn.Execute(@"update t set name='www.lanhusoft.com' where id=@id", new { id = 3}, trans);9 row += conn.Execute("delete from t where id=@id", new { id = 5}, trans);10 for (int i = 0; i < 100; i++)11 {12 conn.Execute(@"insert t(id, name) values (@id, @name)", new { id = i, name = "www.lanhusoft.com/" +i });13 }14 trans.Commit();15 conn.Close();16 }
17 }
参见:
http://www.cnblogs.com/cnki/p/5723426.html