通八洲科技

Dapper如何实现增删改查 Dapper CRUD操作完整指南

日期:2026-01-01 00:00 / 作者:幻夢星雲
Dapper通过Query、Execute等扩展方法配合原生SQL实现CRUD,不提供ORM抽象但支持参数化查询、自动对象映射、事务控制及自增ID获取;需注意SQL注入防护、影响行数校验与事务一致性。

Dapper 本身不提供“内置”的增删改查方法,而是通过扩展方法(如 Query、Execute)配合原生 SQL 实现高效、轻量的 CRUD 操作。它不做 ORM 映射层抽象,但用极简方式把 SQL 执行和对象映射封装得非常自然。

查询(Read):用 Query 获取单条或多条数据

Query 是最常用的方法,支持参数化查询,自动映射列名到对象属性(大小写不敏感,支持 [Column] 特性)。

插入(Create):用 Execute 执行 INSERT 并获取自增 ID

Execute 返回受影响行数;若主键是数据库自增(如 SQL Server 的 IDENTITY),可用 SCOPE_IDENTITY() 获取刚插入的 ID。

更新与删除(Update / Delete):统一用 Execute + 参数化 SQL

Update 和 Delete 都属于“执行无结果集”的操作,全部走 Execute 方法,强调参数安全和影响行数校验。

批量操作与事务:用 Transaction 包裹多个 CRUD

Dapper 不封装批量插入(如 BulkInsert),但可轻松结合事务保证一致性。SQL Server 可搭配 SqlServerBulkCopy,或用 UNION ALL / 表值参数等原生方式。

基本上就这些。Dapper 的 CRUD 不复杂但容易忽略细节——比如不加参数化易被注入,不检查 Execute 返回值可能掩盖更新失败,不配事务导致数据不一致。写清楚 SQL,交给 Dapper 去执行和映射,就是它最稳的用法。