.NET 用Dapper连接mysql进行增删改查

Dapper简介

Dapper是一款轻量级ORM框架,为解决网站访问流量极高而产生的性能问题而构造,主要通过执行TSQL表达式而实现数据库的CQRS。

如果你在项目中遇到性能访问问题,选择Dapper作为ORM框架可能是明智之举,当然也可以使用Entity Framework或NHibernate来处理大数据访问及关系映射。


为什么选择Dapper

  1. 轻量:只有一个文件(SqlMapper.cs),编译完成之后只有140K。

  2. 速度快:Dapper的速度接近于IDataReader,取列表的数据超过了DataTable。

  3. 支持多种数据库:Dapper可以在所有Ado.Net Providers下工作,包括sqlLite、Oracle、MySQL、SQL Server。

  4. 可以映射一对一、一对多、多对多等各种关系。

  5. 性能高:通过Emit反射IDataReader的序列队列,来快速的得到和产生对象,性能不错。

  6. 支持Framework2.0、3.0、3.5、4.0、4.5。


安装Dapper

  1. 选择要安装的项目或解决方案,右键选项选择管理解决方案的NuGet程序包。
  2. 搜索Dapper
  3. 安装
  4. 使用时需要using Dapper

用Dapper简单操作数据库

使用Dapper插入单个数据

匿名类插入

var result = mySqlConnection.Execute(
    "Insert into Users values (@UserName, @Email, @Address)",
    new { UserName = "Tom", Email = "747954712@qq.com", Address = "北京" }
);
if (result > 0)
{
    Console.WriteLine("插入成功!");
}
else
{
    Console.WriteLine("插入失败!");
}

实体类插入

User user = new User()
{
    UserName = "tim",
    Email = "78415155@qq.com",
    Address = "北京"
};
var result = mySqlConnection.Execute(sqlCommandText,user);
if (result > 0)
{
    Console.WriteLine("插入成功!");
}
else
{
    Console.WriteLine("插入失败!");
}

使用Dapper批量插入数据

插入对象改为对象集合

var result = mySqlConnection.Execute("insert into Users values(@UserName,@Email,@Address)", userList);

使用Dapper查询

var query = mySqlConnection.Query<User>("SELECT * FROM Users");
query.AsList().ForEach(p => 
    {
        Console.WriteLine("Id:"+p.UserId+" UserName:"+p.UserName+" Email:"+p.Email+" Address:"+p.Address);
    });

使用Dapper更新数据

匿名类

var result = mySqlConnection.Execute("update Users set UserName='Tim',Address='上海' where UserId=@UserId", new { UserId = 2 });  

同样实体类

User user = new User();
user.UserName = "张无忌";
user.UserId = 1;
user.Address="上海";
var result = mySqlConnection.Execute("update Users set UserName=@UserName,Address=@Address where UserId=@UserId", user);

使用键值对更新

List<KeyValuePair<string, object>> keys = new List<KeyValuePair<string, object>>();
keys.Add(new KeyValuePair<string, object>("@UserName", "风清扬"));
keys.Add(new KeyValuePair<string, object>("@UserId", 2));
var result = mySqlConnection.Execute("update Users set UserName=@UserName where UserId=@UserId", keys);

使用Dapper删除数据#

匿名类

var result = mySqlConnection.Execute("delete from Users where UserId=@UserId", new { UserId = 3 });  

实体类

User user = new User();  
user.UserId = 4;  
var result = connection.Execute("delete from Users where UserId=@UserId", user);  
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值