1. Was ist Dapper
Dapper ist ein .NET‑Micro‑ORM, es gilt als König der Micro‑ORMs und erreicht eine Leistung nahe dem nativen ADO.NET.
ORM: Objekt‑Relationaler‑Mapper. Er übernimmt die automatische Abbildung zwischen Datenbanktabellen und C#‑Entitäten.
Kernmerkmale:
- SQL wird nicht gekapselt, der Entwickler schreibt die SQL‑Anweisungen selbst;
- Er erweitert
IDbConnectionper Erweiterungsmethoden (direkt nutzbar für alle Datenbank‑Verbindungsobjekte); - Klein im Umfang und extrem leistungsstark.
Hinweis: Streng genommen handelt es sich um ein Micro‑ORM, im Gegensatz zu vollständigen ORM‑Frameworks wie EF Core. In der Community wird diskutiert, ob es sich um ein echtes ORM handelt.
Schutz vor SQL‑Injection: Parametrisierte Abfragen verhindern Injection‑Angriffe. Das Zusammenfügen von SQL‑Strings birgt weiterhin Risiken.
Drei Ausführungsschritte: Datenbankverbindung erstellen → SQL‑Anweisung schreiben → Dapper‑Erweiterungsmethode aufrufen, SQL und Parameter übergeben.
Eigenschaften
- Hohe Leistung, schnelle Abfragen
- Unterstützt Abbildung auf statische Entitäten und dynamische Objekte
- Vollständige Kontrolle über SQL‑Anweisungen
- Mehrere Ergebnismengen in einer Abfrage unterstützen
- Native Unterstützung für gespeicherte Prozeduren
- Basiert auf Schnittstelle
IDbConnection, kompatibel mit allen gängigen Datenbanktreibern - Massen‑Einfügen (Erweiterungsfunktion; einfache native Variante, für große Datenmengen wird Dapper.Plus empfohlen)
Installation
Methode 1: NuGet‑Paket‑Manager‑Konsole (PMC)
Install-Package Dapper
Methode 2: .NET‑CLI (empfohlen für .NET Core/.NET5+)
dotnet add package Dapper
Methode 3: Visual‑Studio‑GUI
Solution‑Explorer → Rechtsklick auf Projekt → NuGet‑Pakete verwalten, nach Dapper suchen und installieren.
Wichtiger Hinweis: Dapper bringt keine Datenbanktreiber mit!
Für SQL Server installieren SieMicrosoft.Data.SqlClient; für MySQL verwenden SieMySqlConnector.
Beispiel
using Dapper;
using Microsoft.Data.SqlClient;
// 1. IDbConnection erstellen
string connStr = "Ihre Verbindungszeichenfolge";
using var conn = new SqlConnection(connStr);
// 2. SQL schreiben
string sql = "SELECT * FROM Article WHERE Id = @Id";
// 3. Abfrage ausführen und Entität automatisch abbilden
var article = conn.QueryFirstOrDefault<Article>(sql, new { Id = 1 });
public class Article
{
public int Id { get; set; }
public string Title { get; set; }
}Code-Sprache: JavaScript (javascript)
Vergleich
| Framework | Typ | SQL‑Steuerung | Einsatzbereiche |
|---|---|---|---|
| Dapper | Micro ORM | SQL manuell schreiben | Hohe Leistungsanforderungen, komplexe Abfragen, Modernisierung von Altprojekten |
| EF Core | Full ORM | SQL automatisch generiert, natives SQL möglich | Schnelle Entwicklung, einfache Geschäftslogik, keine manuelle SQL‑Schreibarbeit |
Einführung und Installation