• ORM工具还在用EF Core?快来试试Dapper吧!
  • 发布于 2个月前
  • 146 热度
    0 评论
Dapper 是一个轻量级的对象关系映射器(ORM),专为.NET 平台设计。它使用简单的 API,允许开发者以流畅、简洁的方式操作数据库,同时保持对 SQL 语句的直接控制。Dapper 是 Stack Overflow 团队开发的一个开源项目,以其高性能和易用性而受到广大开发者的喜爱。

Dapper 的主要特点
轻量级:Dapper 是一个非常轻量级的库,对性能的影响非常小。
直接 SQL:Dapper 鼓励直接写 SQL,而不是使用抽象查询语法,这使得开发者能够充分利用数据库的能力。
动态映射:Dapper 支持动态地映射查询结果到对象,无需事先定义对象结构。
异步支持:Dapper 提供异步方法,支持异步数据库操作。
简单 API:Dapper 的 API 非常简洁,易于学习和使用。

Dapper 的基本用法
首先,你需要在项目中安装 Dapper。通过 NuGet 包管理器,可以轻松添加 Dapper 到你的项目中:
Install-Package Dapper
示例代码
假设我们有一个简单的 User 类和一个数据库表 Users:
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
}
以下是如何使用 Dapper 执行查询、插入、更新和删除操作的示例代码:

查询
using System.Data.SqlClient;
using Dapper;

string connectionString = "YourConnectionStringHere";
using (var connection = new SqlConnection(connectionString))
{
    connection.Open();

    // 查询单条记录
    var user = connection.QueryFirstOrDefault<User>("SELECT * FROM Users WHERE Id = @Id", new { Id = 1 });

    // 查询多条记录
    var users = connection.Query<User>("SELECT * FROM Users WHERE Email LIKE @Email", new { Email = "%@example.com" });

    // 动态类型查询
    var dynamicUsers = connection.Query("SELECT * FROM Users WHERE Email LIKE @Email", new { Email = "%@example.com" }).ToList();
}
插入
using (var connection = new SqlConnection(connectionString))
{
    connection.Open();

    var newUserId = connection.Execute(
        "INSERT INTO Users (Name, Email) VALUES (@Name, @Email); SELECT CAST(SCOPE_IDENTITY() AS INT)",
        new { Name = "NewUser", Email = "newuser@example.com" }
    );
}
更新
using (var connection = new SqlConnection(connectionString))
{
    connection.Open();

    var updatedRows = connection.Execute(
        "UPDATE Users SET Name = @Name WHERE Id = @Id",
        new { Name = "UpdatedUser", Id = 1 }
    );
}
删除
using (var connection = new SqlConnection(connectionString))
{
    connection.Open();

    var deletedRows = connection.Execute(
        "DELETE FROM Users WHERE Id = @Id",
        new { Id = 1 }
    );
}
总结
Dapper 是一个高性能且简单易用的微型 ORM,它允许开发者在保持对 SQL 语句的直接控制的同时,享受 ORM 带来的便利。它避免了过度抽象,提供了直接、高效的数据库操作方法,非常适合那些重视性能和灵活性的项目。通过上面的示例代码,我们可以看到 Dapper 的基本用法是如何简洁和强大的。
用户评论