前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#/.NET/.NET Core Dapper 批量删除、新增、修改说明

C#/.NET/.NET Core Dapper 批量删除、新增、修改说明

作者头像
跟着阿笨一起玩NET
发布2023-03-09 21:28:40
1.2K0
发布2023-03-09 21:28:40
举报
代码语言:javascript
复制
Dapper是什么?
  Dapper是一款.Net平台简单(Simple)的对象映射库,并且Dapper拥有着“微型ORM之王”的称号。

  就速度而言与手写ADO.NET SqlDateReader相同。

  ORM是Object Relational Mapper的缩写,代表着数据库与编程语言之间的映射。

  简单来说就是使用Entity Framework、NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀,那么Dapper会是不错的选择。

​1、Dapper基本用法​

通过NuGet安装:Dapper包,如果要进行mysql连接还需要安装Mysql.Data包

​2、数据库连接配置

<connectionStrings> 
  <add name="MysqlServer" connectionString="Database=用数据库名称;Data Source=IP;Port=端口; User Id=用户名;Password=密码;Charset=utf8mb4;TreatTinyAsBoolean=false;" /> //Mysql 
 
  <add name="LinqConnection" connectionString="Data Source=IP;Initial Catalog=数据库名称; User ID=用户名;Password=密码" providerName="System.Data.SqlClient"/> //sql
</connectionStrings>
​3、dapper 数据库连接方法​

Mysql连接方法:

public class DapperService 
{ 
 
  public static MySqlConnection MySqlConnection() 
  { 
     string mysqlConnectionStr = ConfigurationManager.ConnectionStrings["MysqlServer"].ToString(); 
     var connection = new MySqlConnection(mysqlConnectionStr); connection.Open();
      return connection;
   } 
}
mssql连接方法:

public class DapperService { 
 
  public static SqlConnection MySqlConnection()
   { 
 
    string mysqlConnectionStr =ConfigurationManager.ConnectionStrings["LinqConnection"].ToString(); 
    var connection = new SqlConnection(mysqlConnectionStr); 
    connection.Open(); 
    return connection; 
  } 
}
​4、新增方法(单体、批量)​

单体:

public ActionResult GetDapper(CarModel carModel)
{ 
  try 
  { 
    using (IDbConnection conn = DapperService.MySqlConnection())
    { 
      int result = conn.Execute("insert into UserInfo(UserTel,UserName,UserPwd) values (@UserTel,@UserName,@UserPwd)", carModel); 
    } 
    return Json("success"); 
  } 
  catch(Exception e) 
  {
    return Json("failed");
   }
}
批量:

public ActionResult GetDapper(List<CarModel> carModel) 
{
  try 
  { 
    using (IDbConnection conn = DapperService.MySqlConnection())
     { 
      int result = conn.Execute("insert into UserInfo(UserTel,UserName,UserPwd) values(@UserTel,@UserName,@UserPwd)", carModel); 
    } 
    return Json("success"); 
  } 
  catch(Exception e) 
  {
     return Json("failed"); 
  } 
}
​5、删除方法(单体、批量)

单体:

public static int Delete(CarModel carModel)
{ 
  using (IDbConnection conn = DapperService.MySqlConnection()) 
  { 
   return conn.Execute("delete from UserInfo where id=@ID", carModel); 
  } 
}
批量:

public static int Delete(List<CarModel> carModel) 
{ 
  using (IDbConnection conn = DapperService.MySqlConnection()) 
  { 
    return conn.Execute("delete from UserInfo where id=@ID", carModel); 
  } 
}
​6、更新方法(单体、批量)​

单体:

public static int Update(CarModel carModel) 
{ 
  using (IDbConnection conn = DapperService.MySqlConnection()) 
  {
     return conn.Execute("update UserInfo set name=@name where id=@ID", carModel);
   } 
}
批量:

public static int Update(List<CarModel> carModel) 
{ 
  using (IDbConnection conn = DapperService.MySqlConnection())
   { 
    return conn.Execute("update UserInfo set name=@name where id=@ID", carModel); 
  } 
}
7、查询​

无参查询

public static List<CarModel> Query() 
{ 
  using (IDbConnection conn = DapperService.MySqlConnection()) 
  {
          return conn.Query<CarModel>("select * from UserInfo ").ToList();
    } 
}
有参查询

public static Person Query(CarModel carModel) 
{ 
  using (IDbConnection conn = DapperService.MySqlConnection()) 
  { 
    return conn.Query<CarModel>("select * from UserInfo where 
              id=@ID",carModel).SingleOrDefault(); 
  } 
}
​8、Dapper的复杂操作​

In操作

public static List<CarModel> QueryIn() 
{ 
  using (IDbConnection conn = DapperService.MySqlConnection()) 
  { 
    var sql = "select * from UserInfo where id in @ids"; 
     return conn.Query<CarModel>(sql, new { ids = new int[2] { 1, 2 }, }).ToList(); 
  } 
}
 
public static List<CarModel> QueryIn(int[] ids) 
{ 
  using (IDbConnection conn = DapperService.MySqlConnection()) 
  { 
    var sql = "select * from UserInfo where id in @ids";
    return conn.Query<CarModel>(sql, new { ids }).ToList(); 
  } 
}
9、多语句操作

public ActionResult QueryMultiple() 
{ 
  try 
  {  
    using (IDbConnection conn = DapperService.MySqlConnection()) 
    { 
      var sql= "select * from Person; select * from UserInfo"; 
      var multiReader = conn.QueryMultiple(sql); 
      var personList = multiReader.Read<Person>(); 
      var bookList = multiReader.Read<CarModel>(); multiReader.Dispose(); 
    } 
    return Json("success"); 
  } 
  catch(Exception e) 
  { 
    return Json("failed"); 
  } 
}

Dapper是什么?   Dapper是一款.Net平台简单(Simple)的对象映射库,并且Dapper拥有着“微型ORM之王”的称号。

  就速度而言与手写ADO.NET SqlDateReader相同。

  ORM是Object Relational Mapper的缩写,代表着数据库与编程语言之间的映射。

  简单来说就是使用Entity Framework、NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀,那么Dapper会是不错的选择。

​1、Dapper基本用法​

通过NuGet安装:Dapper包,如果要进行mysql连接还需要安装Mysql.Data包

​2、数据库连接配置

  1. <connectionStrings>
  2.   <add name="MysqlServer" connectionString="Database=用数据库名称;Data Source=IP;Port=端口; User Id=用户名;Password=密码;Charset=utf8mb4;TreatTinyAsBoolean=false;" /> //Mysql
  3.   <add name="LinqConnection" connectionString="Data Source=IP;Initial Catalog=数据库名称; User ID=用户名;Password=密码" providerName="System.Data.SqlClient"/> //sql
  4. </connectionStrings>

​3、dapper 数据库连接方法​

Mysql连接方法:

  1. public class DapperService
  2. {
  3. public static MySqlConnection MySqlConnection()
  4.   {
  5. string mysqlConnectionStr = ConfigurationManager.ConnectionStrings["MysqlServer"].ToString();
  6. var connection = new MySqlConnection(mysqlConnectionStr); connection.Open();
  7. return connection;
  8.   }
  9. }

mssql连接方法:

  1. public class DapperService {
  2. public static SqlConnection MySqlConnection()
  3.   {
  4. string mysqlConnectionStr =ConfigurationManager.ConnectionStrings["LinqConnection"].ToString();
  5. var connection = new SqlConnection(mysqlConnectionStr);
  6.     connection.Open();
  7. return connection;
  8.   }
  9. }

​4、新增方法(单体、批量)​

单体:

  1. public ActionResult GetDapper(CarModel carModel)
  2. {
  3.   try
  4.   {
  5. using (IDbConnection conn = DapperService.MySqlConnection())
  6.    {
  7.       int result = conn.Execute("insert into UserInfo(UserTel,UserName,UserPwd) values (@UserTel,@UserName,@UserPwd)", carModel);
  8.     }
  9. return Json("success");
  10.   }
  11.   catch(Exception e)
  12.   {
  13. return Json("failed");
  14.   }
  15. }

批量:

  1. public ActionResult GetDapper(List<CarModel> carModel)
  2. {
  3.  try
  4.   {
  5. using (IDbConnection conn = DapperService.MySqlConnection())
  6.     {
  7.       int result = conn.Execute("insert into UserInfo(UserTel,UserName,UserPwd) values(@UserTel,@UserName,@UserPwd)", carModel);
  8.     }
  9. return Json("success");
  10.   }
  11.   catch(Exception e)
  12.   {
  13. return Json("failed");
  14.   }
  15. }

​5、删除方法(单体、批量)

单体:

  1. public static int Delete(CarModel carModel)
  2. {
  3. using (IDbConnection conn = DapperService.MySqlConnection())
  4.   {
  5. return conn.Execute("delete from UserInfo where id=@ID", carModel);
  6.   }
  7. }

批量:

  1. public static int Delete(List<CarModel> carModel)
  2. {
  3. using (IDbConnection conn = DapperService.MySqlConnection())
  4.   {
  5. return conn.Execute("delete from UserInfo where id=@ID", carModel);
  6.   }
  7. }

​6、更新方法(单体、批量)​

单体:

  1. public static int Update(CarModel carModel)
  2. {
  3. using (IDbConnection conn = DapperService.MySqlConnection())
  4.   {
  5. return conn.Execute("update UserInfo set name=@name where id=@ID", carModel);
  6.   }
  7. }

批量:

  1. public static int Update(List<CarModel> carModel)
  2. {
  3. using (IDbConnection conn = DapperService.MySqlConnection())
  4.   {
  5. return conn.Execute("update UserInfo set name=@name where id=@ID", carModel);
  6.   }
  7. }

7、查询​

无参查询

  1. public static List<CarModel> Query()
  2. {
  3. using (IDbConnection conn = DapperService.MySqlConnection())
  4.   {
  5. return conn.Query<CarModel>("select * from UserInfo ").ToList();
  6. }
  7. }

有参查询

  1. public static Person Query(CarModel carModel)
  2. {
  3. using (IDbConnection conn = DapperService.MySqlConnection())
  4.   {
  5. return conn.Query<CarModel>("select * from UserInfo where
  6. id=@ID",carModel).SingleOrDefault();
  7.   }
  8. }

​8、Dapper的复杂操作​

In操作

  1. public static List<CarModel> QueryIn()
  2. {
  3. using (IDbConnection conn = DapperService.MySqlConnection())
  4.   {
  5.     var sql = "select * from UserInfo where id in @ids";
  6. return conn.Query<CarModel>(sql, new { ids = new int[2] { 1, 2 }, }).ToList();
  7.   }
  8. }
  9. public static List<CarModel> QueryIn(int[] ids)
  10. {
  11. using (IDbConnection conn = DapperService.MySqlConnection())
  12.   {
  13.     var sql = "select * from UserInfo where id in @ids";
  14. return conn.Query<CarModel>(sql, new { ids }).ToList();
  15.   }
  16. }

9、多语句操作

  1. public ActionResult QueryMultiple()
  2. {
  3.   try
  4.   {
  5. using (IDbConnection conn = DapperService.MySqlConnection())
  6.     {
  7.       var sql= "select * from Person; select * from UserInfo";
  8.       var multiReader = conn.QueryMultiple(sql);
  9.       var personList = multiReader.Read<Person>();
  10.       var bookList = multiReader.Read<CarModel>(); multiReader.Dispose();
  11.     }
  12. return Json("success");
  13.   }
  14.   catch(Exception e)
  15.   {
  16. return Json("failed");
  17.   }
  18. }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档