Dapper 是基于 ADO.NET 的轻量级 ORM,提供 LINQ 风格 SQL 查询与自动对象映射,不替代 ADO.NET 而是封装其连接与执行能力,支持单对象查询、多结果集、增删改及事务管理,强调手写 SQL、类型安全与连接可控。

Dapper 是一个极简、高性能的 .NET 对象关系映射(ORM)库,它不替代 ADO.NET,而是在其之上提供一层轻量封装,让你用 LINQ 风格写 SQL 查询,同时几乎不损失原生 ADO.NET 的性能。 它不是全自动 ORM(比如 EF Core 那样能自动生成表、跟踪变更),而是“你掌控 SQL,它帮你映射”,所以快、可控、无魔法。
在项目中通过 NuGet 安装 Dapper:
假设你有数据库表 Users(Id, Name, Email) 和对应类:
public class User { public int Id { get; set; } public string Name { get; set; } public string Email { get; set; } }查询单个用户只需三步:
示例代码:
using (var conn = new SqlConnection(connectionString))<br>{<br> conn.Open();<br> var user = conn.QueryFirstOrDefault<User>("SELECT * FROM Users WHERE Id = @id", new { id = 1 });<br> // user 就是映射好的对象<br>}Dapper 支持一次执行多个 SQL 并返回不同类型的多个结果集,用 QueryMultiple:
示例:
using (var conn = new SqlConnection(connectionString))<br>{<br> conn.Open();<br> using var multi = conn.QueryMultiple(<br> "SELECT * FROM Orders WHERE UserId = @uid; SELECT * FROM OrderItems WHERE OrderId IN (SELECT Id FROM Orders WHERE UserId = @uid)",<br> new { uid = 123 });<br> var orders = multi.Read<Order>().ToList();<br> var items = multi.Read<OrderItem>().ToList();<br>}Dapper 不提供 SaveChanges 类机制,增删改都用 Execute 方法:
插入示例:
using (var conn = new SqlConnection(connectionString))<br>{<br> conn.Open();<br> using var tx = conn.BeginTransaction();<br> try<br> {<br> conn.Execute("INSERT INTO Users (Name, Email) VALUES (@name, @email)",<br> new { name = "张三", email = "zhang@example.com" }, tx);<br> tx.Commit();<br> }<br> catch<br> {<br> tx.Rollback();<br> throw;<br> }<br>}基本上就这些。Dapper 的核心理念是:**写 SQL,不绕弯;信类型,不猜映射;控连接,不交托管**。上手快、踩坑少、性能稳——尤其适合中大型项目里对数据层有明确诉求、不愿被 ORM 抽象绑架的团队。
以上就是C# 如何使用Dapper - 轻量级ORM的性能之王入门教程的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号