In der Automatisierungstechnik – etwa in der Pharma- oder Medizintechnik – müssen Systeme nicht nur zuverlässig, sondern auch effizient mit großen Datenmengen umgehen können.
Eine häufige Herausforderung: schnelle und saubere Datenbankzugriffe, die in komplexen Projekten wie SCADA-, MES- oder Visualisierungssystemen zum Einsatz kommen.
In diesem Beitrag wird anhand eines Beispiels gezeigt, wie man mit .NET 8 und Dapper eine performante und zugleich wartbare Data-Access-Layer aufbaut – mit Fokus auf Lesbarkeit, Performance und Robustheit.
1. Ausgangssituation
Ein Produktionssystem speichert Chargeninformationen in einer SQL-Datenbank.
Ziel: Eine Repository-Methode entwickeln, die eine bestimmte Charge anhand ihrer ID ausliest.
Technologien:
.NET 8
C#
MS SQL Server
Dapper als Micro-ORM
2. Das Datenmodell
///
/// Represents a production batch entity.
///
public class Batch
{
public int BatchId { get; set; }
public string ProductCode { get; set; } = string.Empty;
public DateTime CreatedAt { get; set; }
public string Status { get; set; } = string.Empty;
}
3. Repository-Methode mit Dapper
using System.Data;
using Dapper;
using Serilog;
///
/// Provides data access methods for batch entities.
///
public class BatchRepository
{
private readonly IDbConnection _connection;
private readonly ILogger _logger;
public BatchRepository(IDbConnection connection, ILogger logger)
{
_connection = connection;
_logger = logger;
}
///
/// Retrieves a batch record by its ID.
///
public async Task GetBatchByIdAsync(int batchId)
{
const string sql = "SELECT BatchId, ProductCode, CreatedAt, Status FROM Batches WHERE BatchId = @BatchId;";
try
{
return await _connection.QuerySingleOrDefaultAsync(sql, new { BatchId = batchId });
}
catch (Exception ex)
{
_logger.Error(ex, "Error retrieving batch with ID {BatchId}", batchId);
throw;
}
}
}
4. Best Practices aus der Praxis
Saubere Trennung: Business-Logik und Datenbankzugriff klar getrennt
Fehlerbehandlung: Exceptions werden geloggt
Performance: Dapper ist leichtgewichtig und schnell
Lesbarkeit: Klare Abfragen, kein unnötiger Overhead
Dokumentation: XML-Kommentare für automatische Doku-Tools
5. Fazit
Mit wenigen Zeilen Code lässt sich eine robuste, wartbare und performante Datenbankschicht implementieren. Gerade in Projekten mit hohen Anforderungen an Sicherheit, Stabilität und Transparenz (Pharma, Medizintechnik, Schienenfahrzeuge) ist dieser Ansatz sehr wertvoll.
👉 Wenn Sie für Ihr Projekt einen spezialisierten Experten für .NET, Datenbanken und Schnittstellenentwicklung suchen:
Lassen Sie uns sprechen – 30 Jahre Erfahrung in der Industrieautomation.
Kostenfrei zur Verfügung gestellt von: Uwe E. Keller, Keller Hard & Software Beratung.