IRONSOFTWAREHOME
开发者更新

Dapper C#(开发者如何使用)

Jacob Mellor,Team Iron 的首席技术官
Jacob Mellor
Updated: 2026年7月19日

在现代软件开发中,高效访问数据库对于应用程序的性能和可扩展性至关重要。 Dapper,一个用于 .NET 的轻量级对象关系映射器(ORM),提供了一种简化数据库交互的方法。 在本文中,我们将探讨如何使用 Dapper C# 与 SQLite 数据库文件,展示其通过代码示例的简单性和有效性。 另外,我将介绍由 Iron Software 提供的出色的 PDF 生成库 IronPDF。

Dapper 是什么?

Dapper 是 .NET 平台的对象关系映射(ORM)框架。 它是一个简单的对象映射器,允许您将面向对象的领域模型映射到传统关系数据库。 Dapper 以其速度和性能而闻名,通常被称为"微型 ORM 之王"。它匹配原始 ADO.NET 数据读取器的速度,并通过有用的扩展方法增强了 IDbConnection 接口,以查询 SQL 数据库。

Dapper 的主要特征

1.性能: Dapper 因其轻量级的设计和高效的对象映射而以其卓越的性能而闻名。 2.简洁性: Dapper 的 API 简洁直观,使开发人员能够轻松掌握并有效使用。 3.原始 SQL 支持: Dapper 允许开发人员编写原始 SQL 查询,从而提供对数据库交互的完全控制。 4.对象映射: Dapper 将查询结果直接映射到 C# 对象,从而减少样板代码并提高代码可读性。 5.参数化查询: Dapper 支持参数化查询,可防止 SQL 注入攻击并提高性能。 6.多重映射: Dapper 可以无缝处理一对多和多对多关系,从而高效地执行多个查询,简化复杂的数据检索。

使用 Dapper 异步数据访问

Dapper 提供了异步扩展方法,与其同步方法相同,允许开发人员异步执行数据库查询。 这些异步方法非常适合于 I/O 绑定操作,例如数据库查询,此时主线程可以在等待数据库操作完成时继续执行其他任务。

Dapper 的关键异步方法

  1. **QueryAsync:**异步执行SQL查询,并将结果返回为动态对象或强类型对象的序列。
  2. **QueryFirstOrDefaultAsync:**异步执行SQL查询,返回第一个结果;如果未找到结果,则返回默认值。
  3. **ExecuteAsync:**异步执行SQL命令(例如:INSERT、UPDATE、DELETE),并返回受影响的行数。

设置环境:在深入研究代码示例之前,请确保您已安装必要的工具:

  1. Visual Studio 或 Visual Studio Code。
  2. .NET SDK。
  3. 用于 .NET 的 SQLite 包。

要安装 SQLite 包,请在您的项目目录中执行以下命令:

dotnet add package Microsoft.Data.Sqlite
SHELL

创建 SQLite 数据库:出于演示目的,我们将创建一个名为"example.db"的简单 SQLite 数据库文件,其中包含一个"Users"表,该表包含"Id"、"Name"和"Email"列。

CREATE TABLE Users (
    Id INTEGER PRIMARY KEY,
    Name TEXT,
    Email TEXT
);
Text

结合 SQLite 使用 Dapper

  1. 首先,确保您已导入必要的命名空间:
using Microsoft.Data.Sqlite;
using Dapper;
  1. 建立与 SQLite 数据库的连接:

    string connectionString = "Data Source=example.db"; // SQLite database connection string
    using (var connection = new SqliteConnection(connectionString))
    {
        connection.Open();
        // Your Dapper queries will go here
    }
  2. 使用 Dapper 执行查询:

    // Define a class to represent the structure of a user
    public class User
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Email { get; set; }
    }
    
    // Query to select all users
    string query = "SELECT * FROM Users"; // SQL query
    var users = connection.Query<User>(query).ToList();
    
    // Display the results
    foreach (var user in users)
    {
        Console.WriteLine($"Id: {user.Id}, Name: {user.Name}, Email: {user.Email}");
    }
  3. 使用 Dapper 将数据插入数据库:

    // Define a new user 
    var newUser = new User { Name = "John Doe", Email = "john@example.com" };
    
    // SQL query/stored procedure to insert a new user
    string insertQuery = "INSERT INTO Users (Name, Email) VALUES (@Name, @Email)";
    
    // Execute the query
    connection.Execute(insertQuery, newUser);

IronPDF 简介

IronPDF 是来自 Iron Software 的 C# 库,允许开发人员在 .NET 应用程序中以编程方式创建、编辑和操作 PDF 文档。 它提供了从 HTML、图像和其他格式生成 PDF 文档,以及向现有 PDF 文件添加文本、图像和各种元素的功能。 IronPDF 旨在通过提供一套全面的工具和 API 来简化 .NET 开发人员的 PDF 生成和操作任务。

IronPDF 提供了一系列功能,用于在 .NET 应用程序中生成和操作 PDF:

  1. HTML 转 PDF:将 HTML 内容(包括 CSS 样式)转换为 PDF 文档。
  2. 图像转 PDF:将图像(如 JPEG、PNG、BMP)转换为 PDF 文档。
  3. 文本转 PDF:将纯文本或格式化文本(RTF)转换为 PDF 文档。
  4. PDF 生成:以编程方式从头开始创建 PDF 文档。
  5. PDF 编辑:通过添加或修改文本、图像和其他元素来编辑现有的 PDF 文档。
  6. PDF 合并和拆分:将多个 PDF 文档合并为一个文档,或将一个 PDF 文档拆分为多个文件。
  7. PDF 安全性:对 PDF 文档应用密码保护和加密,以限制访问并保护敏感信息。
  8. PDF 表单填写:以编程方式填充 PDF 表单。
  9. PDF 打印:直接从您的 .NET 应用程序打印 PDF 文档。
  10. PDF 转换设置:在 PDF 生成过程中自定义各种设置,如页面大小、方向、边距、压缩等。
  11. PDF 文本提取:从 PDF 文档中提取文本内容以进行进一步处理或分析。
  12. PDF 元数据:设置 PDF 文档的元数据(作者、标题、主题、关键词)。

使用 IronPDF 和 Dapper 生成 PDF 文档

在 Visual Studio 中创建一个控制台应用程序

Dapper C#(它如何为开发者工作):图1 - 在Visual Studio中创建控制台应用程序

提供项目名称和位置

Dapper C#(它如何为开发者工作):图2 - 命名项目

选择 .NET 版本

Dapper C#(它如何为开发者工作):图3 - 选择所需的.NET版本

从 Visual Studio 包管理器或控制台安装以下包

dotnet add package Microsoft.Data.Sqlite
SHELL

Dapper C#(它如何为开发者工作):图4 - 从Visual Studio包管理器安装Microsoft Data Sqlite

dotnet add package Dapper --version 2.1.35
SHELL

Dapper C#(它如何为开发者工作):图5 - 从Visual Studio包管理器安装Dapper

> dotnet add package IronPdf --version 2024.4.2

Dapper C#(它如何为开发者工作):图6 - 从Visual Studio包管理器安装IronPDF

使用下面的代码生成 PDF 文档:

using Dapper; // Import Dapper for ORM functionalities
using IronPdf; // Import IronPDF for PDF generation
using Microsoft.Data.Sqlite; // Import Sqlite for database connection

// Define the connection string for SQLite database
string connectionString = "Data Source=ironPdf.db";

// Create a string to hold the content for the PDF document
var content = "<h1>Demonstrate IronPDF with Dapper</h1>";

// Add HTML content
content += "<h2>Create a new database using Microsoft.Data.Sqlite</h2>";
content += "<p>new SqliteConnection(connectionString) and connection.Open()</p>";

// Open the database connection
using (var connection = new SqliteConnection(connectionString))
{
    connection.Open();
    
    // Create a Users Table using Dapper
    content += "<h2>Create a Users Table using Dapper and SQL insert query</h2>";
    content += "<p>CREATE TABLE IF NOT EXISTS Users</p>";
    
    // SQL statement to create a Users table
    string sql = "CREATE TABLE IF NOT EXISTS Users (\n    Id INTEGER PRIMARY KEY,\n    Name TEXT,\n    Email TEXT\n);";
    connection.Execute(sql);
    
    // Add Users to table using Dapper
    content += "<h2>Add Users to table using Dapper</h2>";
    content += AddUser(connection, new User { Name = "John Doe", Email = "john@example.com" });
    content += AddUser(connection, new User { Name = "Smith William", Email = "Smith@example.com" });
    content += AddUser(connection, new User { Name = "Rock Bill", Email = "Rock@example.com" });
    content += AddUser(connection, new User { Name = "Jack Sparrow", Email = "Jack@example.com" });
    content += AddUser(connection, new User { Name = "Tomus Tibe", Email = "Tomus@example.com" });
    
    // Retrieve and display users from database
    content += "<h2>Get Users From table using Dapper</h2>";
    string query = "SELECT * FROM Users";
    var users = connection.Query<User>(query).ToList();
    
    // Display each user detail retrieved from the database
    foreach (var user in users)
    {
        content += $"<p>Id:{user.Id}, Name:{user.Name}, email: {user.Email}</p>";
        Console.WriteLine($"{user.Id}. User Name:{user.Name}, Email:{user.Email}");
    }
    
    // Create PDF from the accumulated HTML content
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(content);
    
    // Save the PDF to a file
    pdf.SaveAs("dapper.pdf");
}

// Method to add user to the database and accumulate HTML content
string AddUser(SqliteConnection sqliteConnection, User user)
{
    string insertQuery = "INSERT INTO Users (Name, Email) VALUES (@Name, @Email)";
    sqliteConnection.Execute(insertQuery, user);
    return $"<p>Name:{user.Name}, email: {user.Email}</p>"; 
}

代码解释

  1. 从创建一个用于 PDF 生成的字符串内容持有者开始。
  2. 使用connection.Open()将创建一个空数据库。
  3. 使用Dapper创建Users表,并执行插入的SQL查询。
  4. 使用 Dapper 的插入查询向表中添加用户。
  5. 查询以从数据库中选择所有用户。
  6. 使用IronPDF提供的SaveAs方法,将生成的内容保存为PDF。

输出

Dapper C#(它如何为开发者工作):图7 - 使用上面安装的所有软件包的PDF输出示例

许可证(IronPDF 可用试用版)

IronPDF 的 许可信息 可用,以确保项目中的合规性和使用。

开发人员可以通过 IronPDF 试用许可证页面获取试用许可证。

请在以下显示的appSettings.json文件中替换Key:

{
  "IronPdf.License.LicenseKey" : "The Key Goes Here"
}
JSON

结论

Dapper 简化了 .NET 应用程序中的数据访问,当与 SQLite 结合使用时,它为管理数据库提供了一种轻量级和高效的解决方案。 通过本文中概述的步骤,您可以利用 Dapper 无缝地与 SQLite 数据库交互,使您能够轻松构建强大且可扩展的应用程序。 与 IronPDF 一起,开发人员可以获得与 ORM 数据库(如 Dapper)和 PDF 生成库(如 IronPDF)相关的技能。

Jacob Mellor,Team Iron 的首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥。

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

OR
bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999 起