Dapper 删除数据本质是执行参数化 DELETE SQL 语句,无内置删除方法;需注意事务、软删、批量和级联等场景,推荐按主键/条件单删、事务多表删、UPDATE 软删、IN 或表值参数批量删。
Dapper 删除数据本质就是执行一条 DELETE SQL 语句,它不自带“删除方法”,而是通过 Execute(或 ExecuteAsync
)直接运行参数化 SQL。操作简单、高效,但需注意事务、软删、批量和级联等实际场景。
最常用的方式:按主键或条件删除一条记录,使用参数化防止 SQL 注入。
using (var conn = new SqlConnection(connStr))
{
int rows = conn.Execute("DELETE FROM Products WHERE Id = @Id", new { Id = 123 });
Console.WriteLine($"影响 {rows} 行");
}
@ 或 ?,取决于驱动):using (var conn = new MySqlConnection(connStr))
{
int rows = conn.Execute("DELETE FROM users WHERE id = @id", new { id = 456 });
}
✅ 提示:Dapper 会自动打开连接(如果关闭),无需手动调用 Open();执行完自动释放资源。
当要同时删主表和从表(如删除订单同时删订单项),必须用事务保证原子性。
IDbTransaction 显式控制:using (var conn = new SqlConnection(connStr))
{
conn.Open();
using (var tran = conn.BeginTransaction())
{
try
{
conn.Execute("DELETE FROM OrderItems WHERE OrderId = @OrderId", new { OrderId }, tran);
conn.Execute("DELETE FROM Orders WHERE Id = @OrderId", new { OrderId }, tran);
tran.Commit();
}
catch
{
tran.Rollback();
throw;
}
}
}
不真正删数据,只标记为“已删除”,适合审计、恢复、权限控制等场景。
public bool IsDeleted { get; set; } = false;
conn.Execute("UPDATE Products SET IsDeleted = 1 WHERE Id = @Id", new { Id = 789 });
WHERE IsDeleted = 0
IsDeleted 字段建索引(尤其数据量大时)避免循环逐条删(慢且易超时),推荐以下两种主流方式:
IN 最多支持约 2100 个参数,超量需分批。CREATE TYPE IntList AS TABLE (Id INT)),再传 DataTable 或 IEnumerable基本上就这些。Dapper 删除不复杂,但容易忽略事务安全、软删一致性、批量性能边界这些关键点。按需选择,别硬套一种模式。
# mysql
# app
# sql
# try
# throw
# catch
# bool
# int
# 循环
# using
# public
# 值参数
# var
# delete
# console
# table
# 数据库
# 主键
# 需注意
# 级联
# 都要
# 最多
# 两种
# 自带
# 量大
# 它不
# 先在
相关文章:
制作网页的网站有哪些,电脑上怎么做网页?
网页设计与网站制作内容,怎样注册网站?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
建站ABC备案流程中有哪些关键注意事项?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
建站主机数据库如何配置才能提升网站性能?
C++时间戳转换成日期时间的步骤和示例代码
如何在阿里云通过域名搭建网站?
如何在Windows虚拟主机上快速搭建网站?
如何通过多用户协作模板快速搭建高效企业网站?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
视频网站制作教程,怎么样制作优酷网的小视频?
如何快速搭建高效WAP手机网站?
济南网站制作的价格,历城一职专官方网站?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
jQuery 常见小例汇总
如何配置WinSCP新建站点的密钥验证步骤?
,有什么在线背英语单词效率比较高的网站?
如何通过虚拟主机快速完成网站搭建?
如何在搬瓦工VPS快速搭建网站?
家具网站制作软件,家具厂怎么跑业务?
西安专业网站制作公司有哪些,陕西省建行官方网站?
如何在万网自助建站中设置域名及备案?
如何挑选优质建站一级代理提升网站排名?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
建站VPS能否同时实现高效与安全翻墙?
如何在IIS中新建站点并配置端口与物理路径?
如何在景安服务器上快速搭建个人网站?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
建站三合一如何选?哪家性价比更高?
网站制作企业,网站的banner和导航栏是指什么?
如何正确下载安装西数主机建站助手?
定制建站平台哪家好?企业官网搭建与快速建站方案推荐
如何用y主机助手快速搭建网站?
大型企业网站制作流程,做网站需要注册公司吗?
西安大型网站制作公司,西安招聘网站最好的是哪个?
如何快速搭建FTP站点实现文件共享?
在线制作视频网站免费,都有哪些好的动漫网站?
如何确认建站备案号应放置的具体位置?
制作网站怎么制作,*游戏网站怎么搭建?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
网页设计网站制作软件,microsoft office哪个可以创建网页?
建站之星后台密码如何安全设置与找回?
常州企业网站制作公司,全国继续教育网怎么登录?
C#如何在一个XML文件中查找并替换文本内容
如何在云主机上快速搭建多站点网站?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
如何确保西部建站助手FTP传输的安全性?
javascript基本数据类型及类型检测常用方法小结
*请认真填写需求信息,我们会在24小时内与您取得联系。