Dapper 简介:是什么以及为什么需要它
\n\nDapper 是一个轻量级的库(Micro ORM),适用于 .NET 平台,由 Stack Overflow 团队开发。它是 IDbConnection 的一个扩展,旨在以最小的开销执行数据库 SQL 查询。与重量级 ORM(例如 Entity Framework Core)不同,Dapper 不跟踪对象更改,不生成复杂的 SQL 查询,也不需要配置数据上下文。它的主要目标是实现最大性能和简单性。
Dapper 的主要优势:
\n- \n
- 速度: Dapper 的运行速度几乎与原始 ADO.NET 命令相当,因为它使用动态 IL 代码生成来进行结果映射。 \n
- 简单性: 执行查询所需的代码最少。无需创建复杂的配置。 \n
- 对 SQL 的控制: 您手动编写 SQL 查询,从而完全控制提取哪些数据以及如何提取。 \n
- 灵活性: 适用于任何 ADO.NET 提供程序(SQL Server、PostgreSQL、MySQL、SQLite 等)。 \n
- 可扩展性: 易于与现有项目和其他 ORM 集成。 \n
Dapper 非常适合注重性能和直接控制 SQL 的项目,也适用于微服务和高负载应用程序。
\n\n安装 Dapper
\n\nDapper 通过 NuGet(.NET 的包管理器)分发。可以通过多种方式安装:
\n\n通过包管理器控制台(Visual Studio):
\nInstall-Package Dapper\n\n通过 .NET CLI(推荐方式):
\ndotnet add package Dapper\n\n通过 Visual Studio 中的 NuGet 界面:
\n- \n
- 右键单击项目 → “管理 NuGet 包”。 \n
- 转到“浏览”选项卡。 \n
- 找到“Dapper”并单击“安装”。 \n
安装后,项目中会出现对 Dapper.dll 程序集的引用。不需要任何额外的依赖项——该库基于标准的 System.Data 运行。
快速入门及代码示例
\n\n让我们看一个使用 Dapper 的最小示例。假设我们在 SQL Server 数据库中有一个 Users 表:
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\nusing 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 查询的主要方法。
Dapper 的主要方法/函数
\n\nDapper 为 IDbConnection 接口提供了一组扩展方法。让我们看看 10 个关键方法。
1. Query<T>
\n功能: 执行 SQL 查询并返回指定类型 T 的对象集合。用于返回多行的 SELECT 查询。
参数:
图书馆中也有
推荐