Erstes Beispiel

Dapper unterstützt viele Datenbanksysteme. Wir verwenden hier MySQL als Beispiel.

Sie müssen MySQL zuerst selbst installieren.

Nach der MySQL‑Installation legen Sie eine neue Datenbank an.

Erstellen Sie danach die Tabellen.

Einrichtung

1. NuGet‑Pakete installieren

Beide Pakete müssen zusammen installiert werden:

  1. Dapper (Kernbibliothek für das Mikro‑ORM)
Install-Package Dapper
  1. MySql.Data (MySQL‑Treiber, stellt MySqlConnection zur Verfügung)

Dapper bringt keine Datenbanktreiber mit. Für den Zugriff auf MySQL ist eine zusätzliche Treiber‑Installation erforderlich.

2. Datenbanktabelle erstellen
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `StudentID` int NOT NULL AUTO_INCREMENT,
  `StudentName` text,
  `Age` int,
  `ClassName` text,
  PRIMARY KEY (`StudentID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;Code-Sprache: SQL (Structured Query Language) (sql)

C#‑Entitätsklasse

Stimmen Sie die Eigenschaftsnamen mit den Tabellenspalten ab, dann übernimmt Dapper das Mapping automatisch.

public class Student
{
    public int StudentID { get; set; }
    public string StudentName { get; set; }
    public int Age { get; set; }
    public string ClassName { get; set; }
}Code-Sprache: C# (cs)

Regel: Beim Mapping von Spalten zu Eigenschaften wird Groß‑/Kleinschreibung ignoriert. Übereinstimmende Namen reichen aus.

Konfigurationsdatei

App.config

Korrektur zum Original‑Screenshot: Tragen Sie bei providerName nicht Oracle ein. Diese Einstellung wird für MySQL nicht benötigt und kann entfernt werden.

Verbindungszeichenfolge konfigurieren

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
  <connectionStrings>
    <add name="StudentConnection"
         connectionString="Server=localhost;Database=mydb;Uid=root;Pwd=root"/>
  </connectionStrings>
</configuration>Code-Sprache: HTML, XML (xml)

Code‑Beispiel

using System;
using System.Collections.Generic;
using System.Data;
using Dapper;
using MySql.Data.MySqlClient;
using System.Configuration;

class Program
{
    static void Main(string[] args)
    {
        List<Student> studentList = new List<Student>();

        // Verbindungszeichenfolge aus Konfigurationsdatei einlesen
        string connStr = ConfigurationManager.ConnectionStrings["StudentConnection"].ConnectionString;

        // 1. IDbConnection‑Datenbankverbindung erstellen
        using (IDbConnection db = new MySqlConnection(connStr))
        {
            // 2. SQL‑Anweisung schreiben, 3. Mit Dapper‑Erweiterungsmethode ausführen, automatisches Entitäts‑Mapping
            string sql = "SELECT * FROM student";
            studentList = db.Query<Student>(sql).ToList();

            Console.WriteLine($"Gesamtzahl Studenten: {studentList.Count}");
        }
        Console.ReadKey();
    }
}Code-Sprache: C# (cs)

Dapper‑Ablauf in drei Schritten

  1. Erzeugen eines IDbConnection‑Verbindungsobjekts (MySqlConnection/SqlConnection)
  2. CRUD‑Operationen mit handgeschriebenen SQL‑Anweisungen umsetzen
  3. SQL‑Anweisung und Parameter an Dapper‑Erweiterungsmethoden übergeben (Query/Execute)

SQL‑Injektion

Verwenden Sie parametrisierte Abfragen, um SQL‑Injektion vollständig zu verhindern.
SQL‑Strings durch Zeichenkettenverkettung zu bauen birgt Injektionsrisiken.

string sql = "SELECT * FROM student WHERE StudentID = @Id";
var stu = db.QueryFirstOrDefault<Student>(sql, new { Id = 1 });Code-Sprache: C# (cs)

Erstes Beispiel

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert