C#中如何使用Dapper

Dapper是.NET下轻量级ORM,和Entity Framework或Nhibnate不同,它是半自动化的。Dapper它只有一个代码文件,并且完全开源。我们可以将它放在项目的任何位置来实现数据到对象的ORM操作,它具备体积小且速度快的特点。使用ORM的好处是增、删、改会很快,不用自己写sql语句,并且程序中大量的从数据库中读数据然后创建model,并为model字段赋值,这些ORM都可以替我们完成。ORM给开发带来便利的同时,性能也是一个不得不考虑的问题。一般ORM的性能和原生sql相比性能都差了不少,但Dapper性能还不错,与DbHelperSQL相比性能高出很多。

执行

执行一次或多次命令并返回受影响行数。使用在存储过程插入、更新和删除的情况下,代码如下:

string sql = "INSERT INTO user(name) Values (@Name);";
using (var connection = new SqlConnection(SqlHelper.GetConnectionStringSqlServer()))
{
      //返回受影响的行
      var rowCount = connection.Execute(sql, new {Name= "张三"});
      Console.WriteLine(rowCount);
}

查询

执行查询并映射结果,代码如下:

string sql = "SELECT TOP 10 * FROM user";
using (var connection = new SqlConnection(SqlHelper.GetConnectionStringSqlServer()))
{
     //简单的查询并映射为User类型
      var users= connection.Query<User>(sql).ToList();
}

带参数查询

在Dapper查询中使用参数,代码如下:

using (var connection = new SqlConnection(SqlHelper.GetConnectionStringSqlServer()))
{
      //带参查询
      var customer = connection.Query<Customer>("Select * FROM user WHERE name = @Name", new {Name= "张三"})).ToList();
}

查询结果映射

将查询结果映射到不同的类型。Dapper可以实现结果匿名映射、强类型映射、多重映射 多结果映射和多类型映射,代码如下:

string sql = "SELECT TOP 10 * FROM user";
using (var connection = new SqlConnection(SqlHelper.GetConnectionStringSqlServer()))
{
     //映射为User
      var users= connection.Query<User>(sql).ToList();
      Console.WriteLine(users.Count);}
上一篇:gettimeofday() 获取系统时间,精确到微秒 这个似乎只能在linux 下用,不能在windows 下用


下一篇:PB建数据窗口的时候会报内存错误