zoukankan      html  css  js  c++  java
  • 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(); 
    只要心中有梦,不管什么天气都适合睡觉
  • 相关阅读:
    命令拷屏之网络工具
    PHP 设计模式 笔记与总结(1)命名空间 与 类的自动载入
    Java实现 计蒜客 1251 仙岛求药
    Java实现 计蒜客 1251 仙岛求药
    Java实现 计蒜客 1251 仙岛求药
    Java实现 蓝桥杯 算法训练 字符串合并
    Java实现 蓝桥杯 算法训练 字符串合并
    Java实现 蓝桥杯 算法训练 字符串合并
    Java实现 LeetCode 143 重排链表
    Java实现 LeetCode 143 重排链表
  • 原文地址:https://www.cnblogs.com/mmry/p/6502330.html
Copyright © 2011-2022 走看看