</>
Plan du cours — 36/46

Dapper — micro-ORM (alternative légère à EF Core)

Intermédiaire

Dapper exécute du SQL brut mais mappe automatiquement les résultats vers des objets C#. Beaucoup plus rapide qu'EF Core pour des requêtes complexes ou du reporting, au prix d'écrire le SQL soi-même.

dotnet add package Dapper
dotnet add package Microsoft.Data.SqlClient
using var connexion = new SqlConnection(connectionString);

// Requête simple, mapping automatique vers Utilisateur
var utilisateurs = await connexion.QueryAsync<Utilisateur>(
    "SELECT Id, Nom, Email FROM Utilisateurs WHERE Age >= @AgeMin",
    new { AgeMin = 18 });

// Une seule ligne
var utilisateur = await connexion.QuerySingleOrDefaultAsync<Utilisateur>(
    "SELECT * FROM Utilisateurs WHERE Id = @Id", new { Id = 1 });

// Insertion
await connexion.ExecuteAsync(
    "INSERT INTO Utilisateurs (Nom, Email) VALUES (@Nom, @Email)",
    new { Nom = "Alice", Email = "alice@example.com" });

Astuce : EF Core et Dapper cohabitent très bien dans le même projet — EF Core pour le CRUD courant, Dapper pour les requêtes de reporting ou les cas où la performance brute compte plus que le confort.