Dapper 语法比较简单,效率也比较快,速度接近IDataReader 甚至读取数据超过了DataTable,建议在实际项目可以结合EntityFramework Core 一起使用。

一、创建MySql Table

  1. CREATE TABLE User (
  2. Id int(11) NOT NULL AUTO_INCREMENT,
  3. Name varchar(255) DEFAULT NULL,
  4. PRIMARY KEY (Id)
  5. ) ENGINE=InnoDB DEFAULT CHARSET=gbk;

二、创建Model

  1. public class Users
  2. {
  3. public int Id { get; set; }
  4. public string Name { get; set; }
  5. }

三、Dapper Helper

  1. public class DapperContext
  2. {
    //连接字符串
  3. const string connectionString = "Server=localhost;port=3306;Database=testDB;Uid=root;Pwd=123abc;SslMode=None;";
  4. public static MySqlConnection Connection(){
  5.  
  6. var mysql=new MySqlConnection(connectionString);
  7. mysql.Open();
  8. return mysql;
  9.  
  10. }
  11. }

四、WEBAPI

  1. [Route("api/[controller]")]
  2. public class UserController : Controller
  3. {
  4.  
  5. /// <summary>
  6. /// 获取所有用户数据
  7. /// </summary>
  8. [HttpGet]
  9.  
  10. public List<Users> GetUsers(GetUserInput input){
  11. //分页数据
  12. List<Users> users = new List<Users>();
  13. using(IDbConnection connection=DapperContext.Connection()){
  14.  
  15. users = connection.Query<Users>("select * from user limit @PageIndex,@PageSize",new {
  16. PageIndex=input.PageIndex*input.PageSize,
  17. PageSize=input.PageSize
  18. }).ToList();
  19. }
  20. return users;
  21.  
  22. }
  23.  
  24. /// <summary>
  25. /// 根据用户ID 查询
  26. /// </summary>
  27. [HttpGet("{id}")]
  28. public Users Get(int id)
  29. {
  30. using(IDbConnection connection=DapperContext.Connection()){
  31.  
  32. return connection.Query<Users>("select * from user where id=@Id",new {@Id=id}).FirstOrDefault();
  33. }
  34. }
  35.  
  36. /// <summary>
  37. /// 插入数据
  38. /// </summary>
  39. [HttpPost]
  40. public void Post([FromBody]Users value)
  41. {
  42. using(IDbConnection connection=DapperContext.Connection()){
  43. connection.Execute("insert into user values(@Id,@Name)", new { value.Id,value.Name });
  44. }
  45. }
  46.  
  47. /// <summary>
  48. /// 修改数据
  49. /// </summary>
  50. [HttpPut("{id}")]
  51. public void Put(int id, [FromBody]string value)
  52. {
  53. using(IDbConnection connection=DapperContext.Connection()){
  54.  
  55. connection.Execute("update user set name=@Name where id=@Id", new { Id = id, Name = value });
  56. }
  57. }
  58.  
  59. /// <summary>
  60. /// 删除数据
  61. /// </summary>
  62. [HttpDelete("{id}")]
  63. public void Delete(int id)
  64. {
  65. using(IDbConnection connection=DapperContext.Connection()){
  66. connection.Execute("delete from user where id=@Id", new { Id = id });
  67. }
  68. }
  69. }

只是简单的使用Dapper,如需更多了解建议查看官方文档。

.net core Dapper for MySql的更多相关文章

  1. .NET Core Dapper操作mysql数据库

    前言 现在ORM盛行,市面上已经出现了N款不同的ORM套餐了.今天,我们不谈EF,也不聊神马黑马,就说说 Dapper.如何在.NET Core中使用Dapper操作Mysql数据库呢,让我们跟随镜头 ...

  2. ASP.NET Core 1.0 使用 Dapper 操作 MySql(包含事务)

    操作 MySql 数据库使用MySql.Data程序包(MySql 开发,其他第三方可能会有些问题). project.json 代码: { "version": "1. ...

  3. .NET Core 使用Dapper 操作MySQL

    MySQL官方驱动:http://www.cnblogs.com/linezero/p/5806814.html .NET Core 使用Dapper 操作MySQL 数据库, .NET Core 使 ...

  4. Net Core中数据库事务隔离详解——以Dapper和Mysql为例

    Net Core中数据库事务隔离详解--以Dapper和Mysql为例 事务隔离级别 准备工作 Read uncommitted 读未提交 Read committed 读取提交内容 Repeatab ...

  5. .net core 2.0+superui +Dapper.SimpleCRUD+mysql+NLog

    **_ .net core 2.0+superui +Dapper.SimpleCRUD+mysql+NLog _** 前端框架 superui http://www.supermgr.cn/ 1.组 ...

  6. .NET Core开发日志——Dapper与MySQL

    Dapper作为.NET生态中广为人知的轻量级ORM类库在.NET Core里仍能被有效利用,并且其不但可以连通SQL Server数据库还提供对其它数据库,比如MySQL的支持.这里试验了一下通过D ...

  7. .net core系列之《.net core中使用MySql以及Dapper》

    当我们决定使用.Net Core开发的时候,就放弃使用SqlServer的打算吧.那应该选择哪个数据库呢?一般选择MySql的比较多. 接下来我们来演示在.Net Core中使用MySQL吧. 1.原 ...

  8. 使用Dapper操作Mysql数据库

    首先我想说明一下:相比最原始的ADO.NET,一般都认为封装过一层的ORM性能上会有损耗,但其实在使用中你会发现,当你需要把数据库对象转化为实体模型时,很多所谓的DbHelper其实封装的很低效,反而 ...

  9. 在C#的控制台应用中使用Dapper链接MySQL并执行一些增删改查

    一.首先先创建一个C#的控制台应用 二.然后添加上必要的命名空间 using System;using System.Collections.Generic;using MySql.Data.MySq ...

随机推荐

  1. Python datetime与timestamp之间的转换

    # !!!! Python 2 datetime.datetime 对象没有timestamp方法! 在用Python处理datetime和timestamp的转换时发现在时区方面,Python的处理 ...

  2. Element UI 树形表格,TreeGrid或TreeTable实现

    安装less npm install less --save-devnpm install less-loader --save-dev 模板代码 <template> <div c ...

  3. SSH密钥登录让Linux VPS/服务器更安全

    查看 /var/log 登录日志文件,突然发现服务器被人扫描端口在进行暴力攻击 平常登录服务器,都是使用用户密码登录,看来这样的做法并不安全,不得不关闭密码登录了. 总结了一个putty使用密钥自动登 ...

  4. U盘安装Ubuntu 14.04 LTS

    1.下载Ubuntu14.04 LTS 从Ubuntu官网下载->http://releases.ubuntu.com/14.04/ 2.将Ubuntu14.04安装到U盘 下载U盘系统安装工具 ...

  5. MySQL(七)

    视图 对于复杂的查询,在多次使用后,维护是一件非常麻烦的事情 解决:定义视图 视图本质就是对查询的一个封装 定义视图 create view stuscore as select students.* ...

  6. Python中map函数

    1.简介 python 提供内置函数map(), 接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回.例如: (1)对于list [1, 2 ...

  7. 11-20 bom 浏览器对象模型

    1.window.open(url,ways) url 是打开的网页地址 ways 打开的方式 _self 2.window.close() 3.浏览器用户信息:Window.navigator 4. ...

  8. C_狐狸和兔子的故事

    题目描述 围绕着山顶有10个洞,一只狐狸和一只兔子各住一个洞.狐狸总想吃掉兔子.一天兔子对狐狸说:“你想吃我有一个条件,先把洞从1-10编上号,你从10号洞出发,先到1号洞找我:第二次隔1个洞找我,第 ...

  9. D. Cutting Out 二分

    题意是给你n个数字的序列,让你从中找含k个数字的序列,要求这k个数字要尽可能多次的从n个数字的序列中减去. 解法就是从1到n,二分查找可以删除的最大次数. http://codeforces.com/ ...

  10. WordPress主题开发:按分类调用文章

    调用catid为2的分类下的文章,就是后台分类链接的tag_ID <?php $cat_query = new WP_Query(array( 'cat' => '2' )); ?> ...