Adapper 入门

Adapper 入门

特点

  • 单实体实现自动装配。连表查询需要自己处理装配,查看查询。
  • 原生sql语句。

连接接口:

IDbConnection connection = new SqlConnection("Data Source=.;Initial Catalog=DapperDB;Integrated Security=True;MultipleActiveResultSets=True");

方法:

Execute()

  1. //插入 
  2. var result = connection.Execute("Insert into Users values (@UserName, @Email, @Address)",new {UserName = "jack", Email = "380234234@qq.com", Address = "上海"}); 
  3. //批量插入 
  4. var usersList = Enumerable.Range(0, 10).Select(i => new Users() 

  5. Email = i + "qq.com"
  6. Address = "安徽"
  7. UserName = i + "jack" 
  8. }); 
  9.  
  10. var result = connection.Execute("Insert into Users values (@UserName, @Email, @Address)", usersList); 
  11. //更新 
  12. var result = connection.Execute("update Users set UserName='Merry' where UserID=@UserID", new {UserID = 1}); 
  13. //删除 
  14. var result = connection.Execute("delete from Users where UserID=@UserID", new {UserID = 1}); 

Query<T>()

  1. //查询 自动装配实体User 
  2. var query = connection.Query<Users>("select * from Users where UserName=@UserName", new {UserName = "jack"}); 
  3. return query; 
  4. //带in的查询 
  5. var sql = "select * from Users where Email in @emails"
  6. var info = connection.Query<Users>(sql, new {emails = new string[2] {"5qq.com", "7qq.com"}}); 
  7. //连表查询  
  8. var sql = @"select * from Product as p 
  9. join Users as u 
  10. on p.UserID = u.UserID 
  11. "
  12. //下面一句返回 
  13. //System.Collections.Generic.IEnumerable<dynamic> {System.Collections.Generic.List<Dapper.SqlMapper.DapperRow>} 
  14. //var result = connection.Query(sql); 
  15. //返回product对象 
  16. var result = connection.Query<Product, Users, Product>(sql, 
  17. (product, users) => 

  18. product.UserOwner = users; 
  19. return product; 
  20. }, splitOn: "UserName"); 
  21. //spliton 对应要查询连接表要查询的字段 

MultiStatement()

  1. //返回多个结果 
  2. var sql = "select * from Product; select * from Users"
  3. var multiReader = connection.QueryMultiple(sql); 
  4. var productList = multiReader.Read<Product>(); 
  5. var userList = multiReader.Read<Users>(); 
  6. multiReader.Dispose(); 
只要心中有梦,不管什么天气都适合睡觉
原文地址:https://www.cnblogs.com/mmry/p/6502330.html