Dapper怎么查询数据 Dapper Query方法使用详解

admin 百科 15
Dapper 查询数据的核心是 Query 方法家族,直接执行 SQL 并映射为对象;支持多行(Query)、单行(QueryFirstOrDefault 等)、动态/匿名查询,以及缓冲控制和 IN 参数等进阶技巧。

Dapper怎么查询数据 Dapper Query方法使用详解-第1张图片-佛山资讯网

Dapper 查询数据的核心就是 Query 方法家族,它不搞抽象封装,直接让你写 SQL,再把结果映射成对象。用法简单,但细节决定是否健壮、安全、高效。

基础查询:Query 返回多行

这是最常用的查询方式,适合查列表、分页、批量数据。

  • 必须指定泛型类型 T(如 UserProduct),Dapper 会按属性名自动匹配列名(大小写不敏感)
  • SQL 中用 @参数名 占位,传参用匿名对象或实体对象,天然防 SQL 注入
  • 返回 IEnumerable<t></t>,支持延迟执行;调用 .ToList() 才真正取数

示例:

string sql = "SELECT Id, Name, Email FROM Users WHERE Age > @Age AND Status = @Status";
var users = connection.Query<User>(sql, new { Age = 18, Status = "Active" }).ToList();

登录后复制

单行查询:选对方法很关键

不同场景要选不同方法,它们对“无结果”或“多结果”的处理逻辑完全不同:

  • QueryFirstOrDefault<t>()</t>:有就返回第一条,没有就返回 default(T)(null 或 0)——最常用
  • QueryFirst<t>()</t>:必须至少有一行,否则抛异常
  • QuerySingle<t>()</t>:必须且仅有一行,否则抛异常(适合主键精确查询)
  • QuerySingleOrDefault<t>()</t>:最多一行,有就返回,没就 null,多于一行则抛异常

示例:

var user = connection.QueryFirstOrDefault<User>("SELECT * FROM Users WHERE Id = @Id", new { Id = 123 });

登录后复制

动态与匿名查询:不用定义类也能查

临时查、调试、导出、字段不确定时,可用 dynamic 或匿名类型:

标签: go 大数据 app ai red

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~