Adapper 入门
Adapper 入门
特点
- 单实体实现自动装配。连表查询需要自己处理装配,查看查询。
 - 原生sql语句。
 
连接接口:
IDbConnection connection = new SqlConnection("Data Source=.;Initial Catalog=DapperDB;Integrated Security=True;MultipleActiveResultSets=True");
方法:
Execute()
- //插入 
 - var result = connection.Execute("Insert into Users values (@UserName, @Email, @Address)",new {UserName = "jack", Email = "380234234@qq.com", Address = "上海"}); 
 - //批量插入 
 - var usersList = Enumerable.Range(0, 10).Select(i => new Users() 
 - { 
 - Email = i + "qq.com", 
 - Address = "安徽", 
 - UserName = i + "jack" 
 - }); 
 -  
 - var result = connection.Execute("Insert into Users values (@UserName, @Email, @Address)", usersList); 
 - //更新 
 - var result = connection.Execute("update Users set UserName='Merry' where UserID=@UserID", new {UserID = 1}); 
 - //删除 
 - var result = connection.Execute("delete from Users where UserID=@UserID", new {UserID = 1}); 
 
Query<T>()
- //查询 自动装配实体User 
 - var query = connection.Query<Users>("select * from Users where UserName=@UserName", new {UserName = "jack"}); 
 - return query; 
 - //带in的查询 
 - var sql = "select * from Users where Email in @emails"; 
 - var info = connection.Query<Users>(sql, new {emails = new string[2] {"5qq.com", "7qq.com"}}); 
 - //连表查询  
 - var sql = @"select * from Product as p 
 -  join Users as u 
 -  on p.UserID = u.UserID 
 -  "; 
 - //下面一句返回 
 - //System.Collections.Generic.IEnumerable<dynamic> {System.Collections.Generic.List<Dapper.SqlMapper.DapperRow>} 
 - //var result = connection.Query(sql); 
 - //返回product对象 
 - var result = connection.Query<Product, Users, Product>(sql, 
 - (product, users) => 
 - { 
 - product.UserOwner = users; 
 - return product; 
 - }, splitOn: "UserName"); 
 - //spliton 对应要查询连接表要查询的字段 
 
MultiStatement()
- //返回多个结果 
 - var sql = "select * from Product; select * from Users"; 
 - var multiReader = connection.QueryMultiple(sql); 
 - var productList = multiReader.Read<Product>(); 
 - var userList = multiReader.Read<Users>(); 
 - multiReader.Dispose(); 
 
    只要心中有梦,不管什么天气都适合睡觉

                
            
        
浙公网安备 33010602011771号