紹介とインストール

1. Dapperとは何か

Dapper は .NET マイクロORM(Micro ORM)で、Micro ORMの王様と呼ばれ、ネイティブの ADO.NET に近いパフォーマンスを発揮します。

ORM:オブジェクトリレーショナルマッパー。データベーステーブル ↔ C#エンティティオブジェクトの自動マッピングを実現します。

主な特徴:

  1. SQLを内部でカプセル化せず、開発者がSQLを記述します;
  2. 拡張メソッドにより IDbConnection を拡張(すべてのDB接続オブジェクトから直接利用可能);
  3. 軽量で非常に高いパフォーマンス。

補足:厳密にはマイクロORMに分類され、EF Core のようなフルORMフレームワークとは異なります。コミュニティでは「純粋なORMなのか」という議論が続いています。

SQLインジェクション対策:パラメータ化クエリでインジェクションを回避可能。SQL文字列連結にはリスクが残ります。

実行の3ステップ:データベース接続を作成 → SQL文を記述 → Dapper拡張メソッドを呼び出し、SQLとパラメータを渡して実行。

特徴

  • 高パフォーマンス、高速なクエリ実行
  • 静的エンティティ、動的オブジェクトのマッピングに対応
  • SQL文を自由に制御可能
  • 複数結果セットのクエリに対応
  • ストアドプロシージャをネイティブサポート
  • IDbConnectionインターフェースを利用、各種DBドライバーと互換性あり
  • 一括挿入に対応(拡張機能。標準は簡易一括、大量データには Dapper.Plus 推奨)

インストール

方法1:NuGetパッケージマネージャーコンソール(PMC)
Install-Package Dapper
方法2:.NET CLI(.NET Core/.NET5+推奨)
dotnet add package Dapper
方法3:Visual Studio GUI

ソリューションエクスプローラー → プロジェクト右クリック → 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 ORMSQL自動生成、ネイティブSQLも利用可高速開発、単純な業務、SQLを手書きしたくない場合

紹介とインストール

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です