.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,如需更多了解建议查看官方文档。

原文地址:https://www.cnblogs.com/w2011/p/9515049.html