C#
.NET
Backend-Entwicklung
Datenbank

Datenbankzugriff mit Entity Framework Core

Kaum eine Applikation kommt ohne Zugriff auf die Datenbank aus. In diesem Workshop lernen Sie die Features von Entity Framework Core (EF Core) zum praktischen Einsatz in Web- und Windows-Applikationen sowie Azure-Storage-Technologien.

Programmierung von Datenzugriffslösungen mit Entity Framework Core und C#

Dauer: 3 Tage

Moderne .NET-Anwendungen benötigen zuverlässigen, leistungsstarken und wartbaren Datenzugriff. Dieser Workshop zeigt Ihnen, wie Sie Entity Framework Core (EF Core) effektiv in Web-, Service- und Desktop-Anwendungen einsetzen – und deckt aktuelle Funktionen bis EF Core 10 für relationale und NoSQL-Provider ab.

Zielgruppe

  • .NET-Entwickler und Architekten, die datenzentrierte Apps erstellen
  • Teams, die den Datenzugriff modernisieren oder von EF6/ADO.NET migrieren
  • Ingenieure, die SQL Server, PostgreSQL, SQLite oder Cosmos DB als Ziel haben

Voraussetzungen

  • Fundierte C#/.NET-Erfahrung; grundlegende LINQ-Kenntnisse
  • Vertrautheit mit Konzepten relationaler Datenbanken
  • .NET SDK, Visual Studio oder VS Code
  • Docker Desktop für lokale Datenbanken via Aspire-Integrationen

Workshop-Ziele

  • Domänen mit EF Core modellieren unter Verwendung von Conventions, Data Annotations und Fluent API
  • Effiziente Abfragen erstellen, N+1-Probleme vermeiden und Performance optimieren
  • Migrationen, Deployment und CI/CD-Praktiken anwenden
  • Moderne EF Core-Features bis EF Core 10 Previews nutzen (z.B. JSON-Spalten, Primitive Collections, ExecuteUpdate/ExecuteDelete, Raw SQL Mapping zu unmapped Types, Verbesserungen bei compiled Models)
  • Resilienz, Transaktionen und Teststrategien implementieren

Themen

Grundlagen und Roadmap

  • EF Core-Architektur, Provider und Lebenszyklus bis EF Core 10
  • DbContext-Setup, Dependency Injection, Konfigurationsoptionen
  • Aspire-Integrationen, um lokale Datenbanken ohne manuelle Installation zu starten

Modellierung

  • Conventions, Data Annotations und Fluent API
  • Beziehungen, Schlüssel, Owned/Complex Types, Shadow Properties, Field Mapping
  • Vererbung: Table-per-Hierarchy (TPH), Table-per-Type (TPT), Table-per-Concrete-Type (TPC)
  • Table Splitting und Entity Splitting
  • Mapping zu JSON-Spalten (SQL Server/SQLite) und Primitive Collections

Abfragen und Performance

  • LINQ to Entities-Grundlagen und Projektionsmuster
  • Explicit/Eager/Lazy Loading; N+1 vermeiden
  • Compiled Queries und Caching
  • Raw SQL-Abfragen und Mapping zu Keyless/Unmapped Types
  • Paginierung, Filterung, Sortierung; Server vs. Client Evaluation

Änderungen und Persistenz

  • Change Tracking, Tracking vs. No-Tracking Queries
  • Einfügungen, Aktualisierungen, Löschungen; Bulk-Operationen mit ExecuteUpdate/ExecuteDelete
  • Value Converters, Value Comparers

Migrationen und Deployment

  • Erstellen und Anwenden von Migrationen; Schema-Evolutionsstrategien
  • Daten seeden; Baseline- und wiederholbare Migrationen

Transaktionen und Resilienz

  • Lokale und verteilte/Ambient Transactions
  • Connection Resiliency, Retries und Timeouts
  • Concurrency Tokens und optimistische Nebenläufigkeitsbehandlung

Erweitert und Ökosystem

  • Interceptors und Logging/Diagnostics
  • Temporal Tables, Views und Stored Procedures
  • Cosmos DB/NoSQL mit EF Core
  • Performance-Profiling: Logging Events, dotnet-trace und EF Diagnostics
  • Einsatz von Aspire zur Orchestrierung lokaler Datenbank-Abhängigkeiten (SQL Server, PostgreSQL, Redis) für Samples und Tests

Testen

  • Testen mit SQLite In-Memory und Providern; Fakes vs. echte Datenbanken
  • Deterministische Testmuster für Abfragen und Änderungen

Ergebnisse

Am Ende dieses Workshops können Sie EF Core-Datenzugriffsschichten entwerfen, implementieren und Fehler beheben, die performant, testbar und produktionsreif für relationale und NoSQL-Szenarien sind.

An unhandled error has occurred. Reload 🗙