全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Dapper怎么使用Dapper.Contrib进行CRUD Dapper.Contrib快速操作指南

Dapper.Contrib 可实现免手写 SQL 的高性能 CRUD,需安装 Dapper 和 Dapper.Contrib 包、引入命名空间、实体标记 [Table] 和 [Key] 特性,并调用 Get/GetAll/Insert/Update/Delete 等扩展方法。

直接用 Dapper.Contrib 就能绕过手写 SQL,实现接近原生 Dapper 性能的 CRUD 操作,关键在实体标记和方法调用——不复杂但容易忽略细节。

安装与基础引用

先通过 NuGet 安装两个包(缺一不可):

  • dotnet add package Dapper
  • dotnet add package Dapper.Contrib

代码中必须同时引入命名空间:

using Dapper;
using Dapper.Contrib.Extensions;

实体类要加特性标记

Dapper.Contrib 不靠约定猜表名或主键,而是依赖特性显式声明。最简配置示例如下:

[Table("Users")]
public class User
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public DateTime CreatedAt { get; set; }
}

注意点:

  • [Table] 必须指定数据库表名,不能省略
  • [Key] 标识主键字段,仅一个字段可用;若主键非自增或需手动赋值,可加 [ExplicitKey]
  • [Computed] 用于数据库计算列(如 GETDATE()),插入/更新时自动跳过
  • 不加任何标记的属性默认参与插入和更新

四大核心方法直接上手

所有方法都是 IDbConnection 的扩展,连接打开后即可调用:

  • 查单条connection.Get(1) → 等效 SELECT * FROM Users WHERE Id = @Id
  • 查全部connection.GetAll() → 返回 IEnumerable
  • 插一条int newId = connection.Insert(new User { Name = "Alice" }); → 自增主键自动返回,非自增则返回影响行数
  • 删/改connection.Update(user)connection.Delete(user),都按 [Key] 字段匹配操作

支持事务传参:connection.Insert(user, transaction),适合多步一致性操作。

批量操作与常见避坑

批量插入、更新、删除也内置支持:

  • connection.Insert(new[] { u1, u2, u3 }) → 一次插入多条,返回主键数组
  • connection.Update(new[] { u1, u2 }) → 按主键批量更新

容易出错的地方:

  • 实体没加 [Table][Key] → 运行时报 InvalidOperationException: No key defined
  • 主键字段名不是 Id 且未标 [Key] → 查不到、插不进
  • Get(id) 但传入的是字符串或 Guid 类型 → 确保类型和数据库字段一致

基本上就这些。


# app  # sql  # 命名空间  # select  # 字符串  # int  # using  # delete  # table  # 数据库  # 主键  # 的是  # 都是  # 就能  # 高性能  # 不加  # 不进  # 跳过  # 多条  # 后即 


相关文章: 教程网站设计制作软件,怎么创建自己的一个网站?  如何通过虚拟主机快速搭建个人网站?  寿县云建站:智能SEO优化与多行业模板快速上线指南  建站主机选哪家性价比最高?  高防服务器如何保障网站安全无虞?  建站主机选购指南:核心配置优化与品牌推荐方案  怎么将XML数据可视化 D3.js加载XML  如何制作网站标识牌,动态网站如何制作(教程)?  如何在阿里云购买域名并搭建网站?  内部网站制作流程,如何建立公司内部网站?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  代刷网站制作软件,别人代刷火车票靠谱吗?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  如何构建满足综合性能需求的优质建站方案?  如何在阿里云域名上完成建站全流程?  湖北网站制作公司有哪些,湖北清能集团官网?  Swift中switch语句区间和元组模式匹配  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  高端企业智能建站程序:SEO优化与响应式模板定制开发  网站制作模板下载什么软件,ppt模板免费下载网站?  建站之星后台密码遗忘或太弱?如何重置与强化?  如何挑选高效建站主机与优质域名?  如何通过网站建站时间优化SEO与用户体验?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  如何挑选优质建站一级代理提升网站排名?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  大连 网站制作,大连天途有线官网?  ,石家庄四十八中学官网?  建站VPS配置与SEO优化指南:关键词排名提升策略  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  岳西云建站教程与模板下载_一站式快速建站系统操作指南  如何高效完成独享虚拟主机建站?  如何用5美元大硬盘VPS安全高效搭建个人网站?  深圳网站制作平台,深圳市做网站好的公司有哪些?  建站之星展会模版如何一键下载生成?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  Swift中swift中的switch 语句  教学网站制作软件,学习*后期制作的网站有哪些?  制作公司内部网站有哪些,内网如何建网站?  简单实现Android文件上传  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  装修招标网站设计制作流程,装修招标流程?  高防服务器租用如何选择配置与防御等级?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  存储型VPS适合搭建中小型网站吗?  网站app免费制作软件,能免费看各大网站视频的手机app? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。