Introduction à Dapper : qu'est-ce que c'est et pourquoi l'utiliser
Dapper est une bibliothèque légère (Micro ORM) pour la plateforme .NET, développée par l'équipe de Stack Overflow. Il s'agit d'une extension pour IDbConnection conçue pour exécuter des requêtes SQL vers des bases de données avec un minimum de surcharge. Contrairement aux ORM lourds (comme Entity Framework Core), Dapper ne suit pas les modifications des objets, ne génère pas de requêtes SQL complexes et ne nécessite pas de configuration de contexte de données. Son objectif principal : des performances maximales et une simplicité d'utilisation.
Les principaux avantages de Dapper :
- Vitesse : Dapper fonctionne presque à la vitesse des commandes ADO.NET brutes, car il utilise la génération dynamique de code IL pour le mapping des résultats.
- Simplicité : Un minimum de code pour exécuter des requêtes. Pas besoin de configurations complexes.
- Contrôle du SQL : Vous écrivez vos requêtes SQL manuellement, ce qui vous donne un contrôle total sur les données extraites et leur format.
- Flexibilité : Fonctionne avec n'importe quel fournisseur ADO.NET (SQL Server, PostgreSQL, MySQL, SQLite, etc.).
- Extensibilité : S'intègre facilement aux projets existants et aux autres ORM.
Dapper est idéal pour les projets où la performance et le contrôle direct du SQL sont primordiaux, ainsi que pour les microservices et les applications à forte charge.
Installation de Dapper
Dapper est distribué via NuGet, le gestionnaire de packages pour .NET. Vous pouvez l'installer de plusieurs manières :
Via la console du gestionnaire de packages (Visual Studio) :
Install-Package Dapper
Via .NET CLI (méthode recommandée) :
dotnet add package Dapper
Via l'interface NuGet dans Visual Studio :
- Faites un clic droit sur le projet → "Gérer les packages NuGet".
- Allez dans l'onglet "Parcourir".
- Recherchez "Dapper" et cliquez sur "Installer".
Après l'installation, une référence à l'assembly Dapper.dll sera ajoutée à votre projet. Aucune dépendance supplémentaire n'est requise : la bibliothèque fonctionne au-dessus du System.Data standard.
Démarrage rapide avec un exemple de code
Voici un exemple minimal d'utilisation de Dapper. Supposons que nous ayons une table Users dans une base de données SQL Server :
CREATE TABLE Users (
Id INT PRIMARY KEY IDENTITY,
Name NVARCHAR(100) NOT NULL,
Age INT NOT NULL
);
Le code C# pour récupérer tous les utilisateurs :
using System.Data.SqlClient;
using Dapper;
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main()
{
string connectionString = "Server=localhost;Database=TestDB;Trusted_Connection=True;";
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
// Requête SELECT simple
var users = connection.Query<User>("SELECT * FROM Users");
foreach (var user in users)
{
Console.WriteLine($"{user.Id}: {user.Name}, {user.Age} ans");
}
}
}
}
Comme vous le voyez, Dapper mappe automatiquement les résultats de la requête SQL sur des objets C#. La méthode Query<T> est la méthode principale pour exécuter des requêtes SELECT.
Méthodes/fonctions principales de Dapper
Dapper fournit un ensemble de méthodes d'extension pour l'interface IDbConnection. Voici 10 méthodes clés.
1. Query<T>
Ce qu'elle fait : Exécute une requête SQL et retourne une collection d'objets du type spécifié T. Utilisée pour les requêtes SELECT qui retournent plusieurs lignes.
Paramètres :
sql(string) — la requête SQL.pa
Aussi dans la bibliothèque
Travailler avec Markdown en Go : bibliothèques blackfriday, goldmark et chroma
Bogus pour C# (.NET) : guide complet avec exemples
Création d'applications CLI en Node.js : frameworks Commander et Yargs
Configuration des applications Java : bibliothèques et outils pour la gestion des paramètres