介紹與安裝

一、什麼是 Dapper

Dapper 是 .NET 微型ORM(Micro ORM),有著Micro ORM之王的美稱,效能接近原生 ADO.NET。

ORM:物件關聯對應器,實現資料庫表 ↔ C# 實體物件自動對應。

核心特色:

  1. 不會封裝 SQL,由開發者自行撰寫 SQL;
  2. 透過擴充方法擴充 IDbConnection(所有資料庫連線物件都可直接使用);
  3. 體積輕巧、效能極佳。

討論:嚴格來說它屬於微型ORM,和 EF Core 這類完整ORM框架有所區別,社群一直有「是否算純ORM」的討論。

防 SQL 注入:使用參數化查詢可避免注入;拼接 SQL 仍然存在風險。

執行流程三個步驟:建立資料庫連線 → 撰寫 SQL 陳述式 → 呼叫 Dapper 擴充方法執行 SQL 並傳入參數。

特色

  • 高效能、查詢速度快
  • 支援靜態實體、動態物件對應
  • 可自由控制SQL陳述式
  • 支援多結果集查詢
  • 原生支援預存程序
  • 基於 IDbConnection 介面,相容各種資料庫驅動
  • 支援批次插入(擴充功能,原生僅簡易批次,大量資料建議使用 Dapper.Plus)

安裝

方式1:NuGet 套件管理員主控台(PMC)
Install-Package Dapper
方式2:.NET CLI(建議用於 .NET Core/.NET5+)
dotnet add package Dapper
方式3:Visual Studio 圖形介面

方案總管 → 右鍵專案 → 管理NuGet套件,搜尋 Dapper 進行安裝。

重要提醒:Dapper 本身不包含資料庫驅動
使用SQL Server需要額外安裝 Microsoft.Data.SqlClient;MySQL則需安裝 MySqlConnector

範例

using Dapper;
using Microsoft.Data.SqlClient;

// 1. 建立IDbConnection
string connStr = "你的資料庫連線字串";
using var conn = new SqlConnection(connStr);

// 2. 撰寫SQL
string sql = "SELECT * FROM Article WHERE Id = @Id";

// 3. 執行查詢並自動對應實體
var article = conn.QueryFirstOrDefault<Article>(sql, new { Id = 1 });

public class Article
{
    public int Id { get; set; }
    public string Title { get; set; }
}Code language: JavaScript (javascript)

比較

框架類型SQL控制適用場景
DapperMicro ORM手動撰寫SQL高效能需求、複雜查詢、舊專案改寫
EF CoreFull ORM自動產生SQL,也支援原生SQL快速開發、簡單業務,不想手寫SQL

介紹與安裝

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *