.net core Dapper for MySql

Dapper 語法比較簡單,效率也比較快,速度接近IDataReader 甚至讀取數據超過了DataTable,建議在實際項目能夠結合EntityFramework Core 一塊兒使用。mysql

1、建立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;

2、建立Model

 public class Users
 {
    public int Id { get; set; }
    public string Name { get; set; }
 }

3、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; } }

4、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,如需更多瞭解建議查看官方文檔。sql

相關文章
相關標籤/搜索