Optional
- Das Grundkonzept des Objekt-Relationales-Mappings (ORM)
- Vergleich zwischen Entity Framework Core und ADO.NET Entity Framework
Einführung
- Einsatzgebiete von Entity Framework Core
- Bausteine von Entity Framework Core
- Betrieb auf dem klassischen .NET Framework und .NET Core
- Architektur von Entity Framework Core-basierten AnwendFungen
- Verfügbare Datenbanktreiber
- Performance von Entity Framework Core im Vergleich zu Entity Framework
Grundkonzepte von Entity Framework Core
- Grundkonzepte von Entity Framework Core: Entitätsklassen und Kontextklassen (DbContext)
- Reverse Engineering (Database First) vs. Forward Engineering (Object Model First)
Modelle generieren (Reverse Engineering)
- Werkzeuge für das Reverse Engineering: PowerShell, Kommandozeile, EF Core Power Tools
- Projekteinrichtung
- Herausforderungen bei der Modellgenerierung
- Anpassung der Code-Generierung mit T4-Templates
- Verbesserung des generierten Programmcodes
Modelle selbst erstellen (Forward Engineering)
- Erstellen einer persistenten Klasse mit Plain Old CLR Objects (POCOs)
- Beziehungen zu anderen Klassen
- Dataannotations
- Entity Framework-Kontextklasse (DbContext)
- Eingebaute Konventionen
- Nutzung von Enumerationen
- Vererbung und Vererbungsstrategien (TPH, TPT, TPC)
- Datenbank erstellen aus Modellen
Modelle anpassen
- Konventionen überschreiben
- Explizite Konfiguration mit Annotationen/.NET-Attributen
- Explizite Konfiguration mit Fluent-API
Datenbankschemagenerierung und Schemamigrationen
- PowerShell-Commandlets
- Migrationen definieren
- Schemamigrationen ausführen
- Zurückkehren zu alten Ständen
- Migrationsklasse
- Komplexere Migrationen mit Datenaktualisierung
- Data Seeding
Datenbankoperationen (CRUD)
- Objekte anlegen
- Objekte abfragen mit LINQ
Methodensyntax vs. Query-Syntax
Umsetzung in SQL
- Objekte abfragen mit SQL, Views, Stored Procedures und Table-valued Functions
- Query Tags
- Daten ändern
- Daten löschen
- Massenoperationen mit ExecuteUpdate() und ExecuteDelete()
- Einfügen, Ändern und Löschen per Stored Procedure bei SaveChanges()
Objektbeziehungen und Ladestrategien
- Abhängigkeiten definieren
- Navigieren zwischen Objekten
- Nachladen
- Eager Loading (Include/ThenInclude/Auto Includes)
- Preloading
- Lazy Loading (ab Version 2.1)
Aufbauwissen
- Architekturfragen: Rolle von EFCore in der Sofwtarearchitektur, Atached vs. Detached
- Besondere Mapping-Optionen: Shadow State, Table Splitting/Owned Types, Entity Splitting, JSON-Mapping u.a.
- Caching
- Protokollierung (Logging)
- Asynchrone Programmierung
- Dynamische LINQ-Abfragen
- Globale Filter
- Value Conversions
- Kaskadierendes Löschen
- Konflikterkennung und Konfliktlösung (Concurrency)
- Transaktionen (inkl. TransactionScope)
Einsatzgebiete
- Einsatz von Entity Framework in ASP.NET Core und Blazor (Server, Cloud)
- Einsatz von Entity Framework in Desktopanwendungen (WPF und/oder Windows Forms)
- Einsatz von Entity Framework in Mobile Apps (.NET MAUI)
- Einsatz von Entity Framework in Blazor-Apps im Browser
Optional: Profiwissen
- Konventionen anpassen und selbst erstellen
- Verhalten von Entity Framework Core ändern mit Interceptoren
- Leistungsoptimierungen/Performance-Tuning (No-Tracking, Caching, Compiled Queries, Compiled Models, u.a.)
- Unit Testing / Integrationstests mit In-Memory-Treiber
- Tipps, Tricks, Best Practices
Optional: Zusatzwerkzeuge
- EF Core Power Tools
- LINQPad
- EF Profiler
- Entity Developer
Optional: Zusatzkomponenten wie z.B. EFPlus