当前位置: 首页 > article >正文

C# Dapper的简单使用

Dapper介绍

Dapper 是一个轻量级的对象关系映射(Object - Relational Mapping,ORM)工具,它在.NET 应用程序中用于简化数据库访问操作。它提供了高性能、简单易用的方式来执行 SQL 查询和命令,并且与ADO.NET紧密集成。Dapper 的主要优势在于其简洁性和高性能,它能够快速地将数据库查询结果映射到 C# 对象,并且在执行 SQL 命令时具有较低的开销。
简单来说,它使用起来很方便,但是需要我们有一定的sql基础,他不是重量级的对象关系映射,所以内部没有封装方法让我们直接调用。
我们这里介绍一下简单使用,如果需要项目化使用Dapper的话可以参考一下我的下一篇文章。

简单使用

安装 Dapper

首先,你需要通过 NuGet 包管理器安装 Dapper。在 Visual Studio 的“包管理器控制台”中运行以下命令:

Install-Package Dapper

或者,你可以通过 NuGet 包管理器 GUI 搜索“Dapper”并安装它。

在这里插入图片描述

配置数据库连接

Dapper 本身不处理数据库连接,你需要使用 ADO.NET 或其他数据库连接库(如 System.Data.SqlClient 对于 SQL Server)来建立连接。

csharp
using System.Data.SqlClient;
 
string connectionString = "your_connection_string_here";
using (var connection = new SqlConnection(connectionString))
{
    // 数据库操作代码将在这里编写
}

是不是非常的简单,接下来介绍一下数据库操作。

执行查询

Dapper 提供了多种方法来执行 SQL 查询并映射结果到对象。以下是一些常见的用法:

查询单个对象

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

在这个例子中,QuerySingleOrDefault 方法会执行 SQL 查询,并期望返回一个且仅返回一个结果。如果查询返回多个结果或没有结果,它将返回 default(User)(对于引用类型通常是 null)。

查询多个对象

var sql = "SELECT * FROM Users";
var users = connection.Query<User>(sql).ToList();

这里,Query 方法会执行 SQL 查询,并返回一个包含所有结果的 IEnumerable。你可以使用 .ToList() 方法将其转换为列表。

使用参数化查询

Dapper 支持参数化查询,这有助于防止 SQL 注入攻击。你可以使用匿名对象或具名参数来传递查询参数。

var sql = "SELECT * FROM Users WHERE Age > @Age";
var users = connection.Query<User>(sql, new { Age = 25 }).ToList();
执行命令

除了查询之外,Dapper 还可以用于执行非查询命令(如 INSERT、UPDATE、DELETE)。这里可以写增删改的语句。

var sql = "INSERT INTO Users (Name, Age) VALUES (@Name, @Age)";
var affectedRows = connection.Execute(sql, new { Name = "John Doe", Age = 30 });

Execute 方法会执行 SQL 命令,并返回受影响的行数。

事务处理

Dapper 支持事务处理,你可以使用 SqlTransaction 对象来管理事务。

using (var connection = new SqlConnection(connectionString))
{
    connection.Open();
    using (var transaction = connection.BeginTransaction())
    {
        try
        {
            // 执行一些数据库操作
            var affectedRows = connection.Execute(sql, parameters, transaction);
 
            // 如果一切正常,提交事务
            transaction.Commit();
        }
        catch
        {
            // 如果出现异常,回滚事务
            transaction.Rollback();
            throw;
        }
    }
}
映射结果到自定义类型

Dapper 可以自动将查询结果映射到自定义类型。你需要确保你的自定义类型的属性名称与数据库表的列名称相匹配(或者使用别名)。

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

总结

Dapper 是一个简单而强大的 ORM 框架,它提供了对 SQL 查询和存储过程的直接映射,同时保持了代码的清晰和高效

小白路漫漫,让我们一起加油!!!


http://www.kler.cn/a/427735.html

相关文章:

  • 代码整洁之道学习
  • 力扣题库-掷骰子模拟详细解析
  • 总篇:Python3+Request+Pytest+Allure+Jenkins接口自动化框架设计思路
  • 2024年构建PHP应用开发环境
  • Redis的高可用之哨兵模式
  • Python并发编程全解析
  • 40分钟学 Go 语言高并发:服务注册与发现
  • Java经典面试题总结(附答案)2025
  • 跑模型——fastapi使用笔记
  • Unity类银河战士恶魔城学习总结(P166 Ailments FX 异常状态伤害粒子特效)
  • MySQL各个版本新功能简介
  • 红日靶场vulnstark 4靶机的测试报告[细节](一)
  • VTK中矩阵vtkMatrix4x4类的介绍和使用
  • 11.17【大数据】Hadoop【DEBUG】
  • mysql集群MHA方式部署
  • 使用堆栈(Stack)
  • 软件体系结构复习-02 软件体系结构定位及构建
  • k8s-golang获取健康状态ip
  • 如何将 Docker 镜像打包为 ZIP 文件便于分享和转发
  • 重生之我在异世界学编程之C语言:深入指针篇(下)