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(); 
    只要心中有梦,不管什么天气都适合睡觉
  • 相关阅读:
    kolla-ansible安装openstack(Ocata)
    OpenStack 虚机网卡的创建过程
    C语言 IPv6 十六进制 转 十进制
    python IPv6 十进制和十六进制互转
    ICMPv6 Packet Types and Codes
    scapy IPv6 NS NA报文构造
    最接近的数 牛客网 程序员面试金典 C++ Python
    最近公共祖先 牛客网 程序员面试金典 C++ Python
    有向路径检查 牛客网 程序员面试金典 C++ Python
    检查是否是BST 牛客网 程序员面试金典 C++ java Python
  • 原文地址:https://www.cnblogs.com/mmry/p/6502330.html
Copyright © 2011-2022 走看看