Dapper for C# (.NET): 完整指南及示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Dapper 简介:是什么以及为什么需要它

\n\n

Dapper 是一个轻量级的库(Micro ORM),适用于 .NET 平台,由 Stack Overflow 团队开发。它是 IDbConnection 的一个扩展,旨在以最小的开销执行数据库 SQL 查询。与重量级 ORM(例如 Entity Framework Core)不同,Dapper 不跟踪对象更改,不生成复杂的 SQL 查询,也不需要配置数据上下文。它的主要目标是实现最大性能和简单性。

\n\n

Dapper 的主要优势:

\n
    \n
  • 速度: Dapper 的运行速度几乎与原始 ADO.NET 命令相当,因为它使用动态 IL 代码生成来进行结果映射。
  • \n
  • 简单性: 执行查询所需的代码最少。无需创建复杂的配置。
  • \n
  • 对 SQL 的控制: 您手动编写 SQL 查询,从而完全控制提取哪些数据以及如何提取。
  • \n
  • 灵活性: 适用于任何 ADO.NET 提供程序(SQL Server、PostgreSQL、MySQL、SQLite 等)。
  • \n
  • 可扩展性: 易于与现有项目和其他 ORM 集成。
  • \n
\n\n

Dapper 非常适合注重性能和直接控制 SQL 的项目,也适用于微服务和高负载应用程序。

\n\n

安装 Dapper

\n\n

Dapper 通过 NuGet(.NET 的包管理器)分发。可以通过多种方式安装:

\n\n

通过包管理器控制台(Visual Studio):

\n
Install-Package Dapper
\n\n

通过 .NET CLI(推荐方式):

\n
dotnet add package Dapper
\n\n

通过 Visual Studio 中的 NuGet 界面:

\n
    \n
  1. 右键单击项目 → “管理 NuGet 包”。
  2. \n
  3. 转到“浏览”选项卡。
  4. \n
  5. 找到“Dapper”并单击“安装”。
  6. \n
\n\n

安装后,项目中会出现对 Dapper.dll 程序集的引用。不需要任何额外的依赖项——该库基于标准的 System.Data 运行。

\n\n

快速入门及代码示例

\n\n

让我们看一个使用 Dapper 的最小示例。假设我们在 SQL Server 数据库中有一个 Users 表:

\n\n
CREATE TABLE Users (\n    Id INT PRIMARY KEY IDENTITY,\n    Name NVARCHAR(100) NOT NULL,\n    Age INT NOT NULL\n);
\n\n

用于获取所有用户的 C# 代码:

\n\n
using System.Data.SqlClient;\nusing Dapper;\n\npublic class User\n{\n    public int Id { get; set; }\n    public string Name { get; set; }\n    public int Age { get; set; }\n}\n\nclass Program\n{\n    static void Main()\n    {\n        string connectionString = "Server=localhost;Database=TestDB;Trusted_Connection=True;";\n        using (var connection = new SqlConnection(connectionString))\n        {\n            connection.Open();\n            \n            // 简单的 SELECT 查询\n            var users = connection.Query<User>("SELECT * FROM Users");\n            \n            foreach (var user in users)\n            {\n                Console.WriteLine($"{user.Id}: {user.Name}, {user.Age} 岁");\n            }\n        }\n    }\n}
\n\n

如您所见,Dapper 自动将 SQL 查询结果映射到 C# 对象。Query<T> 方法是执行 SELECT 查询的主要方法。

\n\n

Dapper 的主要方法/函数

\n\n

Dapper 为 IDbConnection 接口提供了一组扩展方法。让我们看看 10 个关键方法。

\n\n

1. Query<T>

\n

功能: 执行 SQL 查询并返回指定类型 T 的对象集合。用于返回多行的 SELECT 查询。

\n

参数:

推荐