.net core Dapper for MySql
Dapper 语法比较简单,效率也比较快,速度接近IDataReader 甚至读取数据超过了DataTable,建议在实际项目可以结合EntityFramework Core 一起使用。
一、创建MySql Table
CREATE TABLE User (
Id int(11) NOT NULL AUTO_INCREMENT,
Name varchar(255) DEFAULT NULL,
PRIMARY KEY (Id)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
二、创建Model
public class Users
{
public int Id { get; set; }
public string Name { get; set; }
}
三、Dapper Helper
public class DapperContext
{
//连接字符串
const string connectionString = "Server=localhost;port=3306;Database=testDB;Uid=root;Pwd=123abc;SslMode=None;";
public static MySqlConnection Connection(){ var mysql=new MySqlConnection(connectionString);
mysql.Open();
return mysql; }
}
四、WEBAPI
[Route("api/[controller]")]
public class UserController : Controller
{
/// <summary>
/// 获取所有用户数据
/// </summary>
[HttpGet]
public List<Users> GetUsers(GetUserInput input){
//分页数据
List<Users> users = new List<Users>();
using(IDbConnection connection=DapperContext.Connection()){
users = connection.Query<Users>("select * from user limit @PageIndex,@PageSize",new {
PageIndex=input.PageIndex*input.PageSize,
PageSize=input.PageSize
}).ToList();
}
return users;
}
/// <summary>
/// 根据用户ID 查询
/// </summary>
[HttpGet("{id}")]
public Users Get(int id)
{
using(IDbConnection connection=DapperContext.Connection()){
return connection.Query<Users>("select * from user where id=@Id",new {@Id=id}).FirstOrDefault();
}
}
/// <summary>
/// 插入数据
/// </summary>
[HttpPost]
public void Post([FromBody]Users value)
{
using(IDbConnection connection=DapperContext.Connection()){
connection.Execute("insert into user values(@Id,@Name)", new { value.Id,value.Name });
}
}
/// <summary>
/// 修改数据
/// </summary>
[HttpPut("{id}")]
public void Put(int id, [FromBody]string value)
{
using(IDbConnection connection=DapperContext.Connection()){
connection.Execute("update user set name=@Name where id=@Id", new { Id = id, Name = value });
}
}
/// <summary>
/// 删除数据
/// </summary>
[HttpDelete("{id}")]
public void Delete(int id)
{
using(IDbConnection connection=DapperContext.Connection()){
connection.Execute("delete from user where id=@Id", new { Id = id });
}
}
}
只是简单的使用Dapper,如需更多了解建议查看官方文档。
.net core Dapper for MySql的更多相关文章
- .NET Core Dapper操作mysql数据库
前言 现在ORM盛行,市面上已经出现了N款不同的ORM套餐了.今天,我们不谈EF,也不聊神马黑马,就说说 Dapper.如何在.NET Core中使用Dapper操作Mysql数据库呢,让我们跟随镜头 ...
- ASP.NET Core 1.0 使用 Dapper 操作 MySql(包含事务)
操作 MySql 数据库使用MySql.Data程序包(MySql 开发,其他第三方可能会有些问题). project.json 代码: { "version": "1. ...
- .NET Core 使用Dapper 操作MySQL
MySQL官方驱动:http://www.cnblogs.com/linezero/p/5806814.html .NET Core 使用Dapper 操作MySQL 数据库, .NET Core 使 ...
- Net Core中数据库事务隔离详解——以Dapper和Mysql为例
Net Core中数据库事务隔离详解--以Dapper和Mysql为例 事务隔离级别 准备工作 Read uncommitted 读未提交 Read committed 读取提交内容 Repeatab ...
- .net core 2.0+superui +Dapper.SimpleCRUD+mysql+NLog
**_ .net core 2.0+superui +Dapper.SimpleCRUD+mysql+NLog _** 前端框架 superui http://www.supermgr.cn/ 1.组 ...
- .NET Core开发日志——Dapper与MySQL
Dapper作为.NET生态中广为人知的轻量级ORM类库在.NET Core里仍能被有效利用,并且其不但可以连通SQL Server数据库还提供对其它数据库,比如MySQL的支持.这里试验了一下通过D ...
- .net core系列之《.net core中使用MySql以及Dapper》
当我们决定使用.Net Core开发的时候,就放弃使用SqlServer的打算吧.那应该选择哪个数据库呢?一般选择MySql的比较多. 接下来我们来演示在.Net Core中使用MySQL吧. 1.原 ...
- 使用Dapper操作Mysql数据库
首先我想说明一下:相比最原始的ADO.NET,一般都认为封装过一层的ORM性能上会有损耗,但其实在使用中你会发现,当你需要把数据库对象转化为实体模型时,很多所谓的DbHelper其实封装的很低效,反而 ...
- 在C#的控制台应用中使用Dapper链接MySQL并执行一些增删改查
一.首先先创建一个C#的控制台应用 二.然后添加上必要的命名空间 using System;using System.Collections.Generic;using MySql.Data.MySq ...
随机推荐
- linux修改文件为可执行文件
修改shell为可执行文件 chmod +x test2.sh chmod 751 file 给file的属主分配读.写.执行(7)的权限,给file的所在组分配读.执行(5)的权限,给其他用户分 ...
- 移动端触屏滑动,JS事件
先了解下 移动端的触屏滑动 毕竟这玩意其实和PC端还是有一定的区别的 hh 整理了下网上的资料放一放 移动端触屏滑动的效果其实就是图片轮播,在PC的页面上很好实现,绑定click和mouseover等 ...
- C++程序设计方法4:类模板
类模板 在定义类时也可以将一些类型抽象出来,用模板参数来替换,从而使类更具有通用性.这种类被称为模板类,例如: template <typename T> class A { T data ...
- Java Web 域名
虽然可以直接通过IP地址来访问WWW的每一台主机,但是32位IP地址非常难记.所以,为了便于记忆,按照一定的规则给Internet上的计算机起了名字即域名.通俗地说,域名相当于一个房屋的门牌号码,别人 ...
- Python并发编程-线程
Python作为一种解释型语言,由于使用了全局解释锁(GIL)的原因,其代码不能同时在多核CPU上并发的运行.这也导致在Python中使用多线程编程并不能实现并发,我们得使用其他的方法在Python中 ...
- git https 请求报错 504
git https 请求报错 504 原因可能是因为设置了代理,ubuntu/deepin 系统可以检查 /etc/profile ~/.bashrc 内有没有设置 https 的代理. 有的话,去掉 ...
- 11-13 js操作css样式
1.Js操作css样式 Div.style.width=”100px”.在div标签内我们添加了一个style属性,并设定了width值.这种写法会给标签带来大量的style属性,跟实际项目是不符. ...
- JDK提供的几种线程池比较
JDK提供的几种线程池 newFixedThreadPool创建一个指定工作线程数量的线程池.每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中. ...
- Hibernate(8)_单向n对n
1.n-n 的关联必须使用连接表 与1-n映射类似,必须为set集合元素添加 key 子元素,需要指定中间表 2.实体类 Category.java public class Category { p ...
- Unity3D性能优化最佳实践(四)资源审查
Asset auditing - 资源审查 许多项目发生效能问题的真正原因只是由于人员操作不当或是试东试西,而不小心改到导入设定影响到导入的资源.(例如最近的gitlab惨案) 对于较大规模的项目,最 ...