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-traceund 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.