Dapper总结(一)---基本CRUD操作

 一、dapper是什么

  dapper是一款轻量级的ORM(Object Relationship Mapper),它负责数据库和编程语言之间的映射。SqlConnection,MysqlConnection,OracleConnection都是继承于DBConnection,而DBConnection又是实现了IDBConnection的接口。因为Dapper是对IDBConnection接口进行了方法扩展,比如你看到的SqlMapper.cs,所以dapper支持多数据库。

二、dapper的简单使用

0、准备的测试类

 1   //用户类
 2     public class UserInfo
 3     {
 4         public int UId { get; set; }//用户Id
 5         public string UserName { get; set; }//用户名
 6         public int Age { get; set; }//年龄
 7         public int RoleId { get; set; }//角色Id
 8 
 9     }
10     //角色类
11     public class RoleInfo
12     {
13         public int RId { get; set; }//角色Id
14         public string RoleName { get; set; }//角色名
15     }

1、execute方法,返回值为int类型,表示受影响行数

 1      //插入数据
 2             //单条数据插入
 3             int result = conn.Execute("insert into userinfo values(@username,@age,@roleid)", new
 4             {
 5                 UserName = "user1",
 6                 Age = 20,
 7                 RoleId = 1
 8             });  // result=1
 9 
10             //多条数据插入
11             List<UserInfo> users=new List<UserInfo>(){
12                  new UserInfo(){UserName="user2",Age=22,RoleId=1},
13                  new UserInfo(){UserName="user3",Age=23,RoleId=1},
14                  new UserInfo(){UserName="user4",Age=24,RoleId=2},
15                                  };
16 
17             int result2 = conn.Execute("insert into userinfo values(@username,@age,@roleid)", users); // result2=3        
18 
19         //修改
20             int rusultEdit = conn.Execute("update userinfo set age=25 where username=@username", new { UserName = "user0" });
21 
22        //删除
23             int resultDel = conn.Execute("delete from userinfo where uid=@uid", new { UId = 6 });

2、Query方法,返回值为IEnumerable类型

 1     //带参数查询 例子:查询用户名为user1,年龄为20的用户
 2             IEnumerable<UserInfo> query1 = conn.Query<UserInfo>("select * from userinfo where age=@Age and username=@username", new{Age=20,UserName="user1"})
3 4 //in查询 例子:查询年龄是20,21,或22的用户 5 IEnumerable<UserInfo> query2=conn.Query<UserInfo>("select * from userinfo where age in @ages",new {ages=new int [3]{20,21,22}}); 6 7 //返回多个结果集 例子:查询用户列表和角色列表 8 var sql = "select * from userinfo; select * from roleinfo"; 9 var query3 = conn.QueryMultiple(sql);//GridReader类型 10 var usesList = query3.Read<UserInfo>();//IEnumberable类型 11 var roleList = query3.Read<RoleInfo>(); 12 13 //表连接查询 例子:查询用户信息和其对应的角色名 14 //1、返回强类型结果 15 var sql2 = @"select u.username,u.age,u.uid ,r.rolename from userinfo as u join roleinfo as r on u.roleid=r.rid"; 16 var result2 = conn.Query<UserInfo, RoleInfo, UserInfo>(sql2, (user, role) => 17 { 18 user.Role = role; 19 return user; 20 }, splitOn: "RoleName");//splitOn参数表示分割,前边的是第一个对象的属性,后边的是第二个对象的属性 21 22 //2、返回动态类型结果 23 var result3 = conn.Query(sql2); 24 foreach (var item in result3) 25 { 26 Console.WriteLine("username:{0},rolename:{1}", item.username, item.rolename); 27 }

 

转载于:https://www.cnblogs.com/wyy1234/p/9077551.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值