Entity Framework Core (EF Core) ist der offizielle Object-Relational-Mapper (ORM) im modernen .NET-Stack und der quelloffene, plattformübergreifende Nachfolger des klassischen Entity Framework 6 (EF6). EF Core verbindet objektorientierte Domänenmodelle in C# oder F# mit relationalen Datenbanken über LINQ-basierte Abfragen, einen Change Tracker und eine Migrations-Engine, die Schemaänderungen automatisch in SQL-Skripte und Versionsverläufe überführt.
Eingesetzt wird EF Core in praktisch allen .NET-Anwendungen mit relationalem Datenmodell: ASP.NET-Core-Webanwendungen, APIs, Hintergrunddiensten, Desktop-Anwendungen und CLI-Werkzeugen. Es unterstützt eine Vielzahl von Providern — unter anderem SQL Server, Azure SQL, PostgreSQL, MySQL, SQLite, Oracle und Cosmos DB — und integriert sich tief in das Dependency-Injection-Modell von ASP.NET Core und in das ASP.NET-Identity-Framework für Authentifizierung.
Der Einsatzzweck von EF Core liegt in der Reduktion von Boilerplate-Code beim Datenzugriff, der typsicheren Formulierung von Abfragen über LINQ to Entities, dem Mapping zwischen relationalem Schema und Domänenobjekten sowie der Versionierung von Datenbankschemata über Migrations. Damit werden klassische Probleme handgeschriebenen ADO.NET-Codes adressiert: SQL-Injection durch String-Konkatenation, manuelles Mapping zwischen DataReader und Objekten, fehleranfälliges Schemamanagement und mangelnde Refactoring-Sicherheit.
Historisch geht EF Core auf das ursprüngliche Entity Framework zurück, das mit .NET 3.5 SP1 (2008) erstmals erschien. EF Core wurde 2016 als Neuentwicklung mit .NET Core 1.0 veröffentlicht, war anfangs gegenüber EF6 in Funktionsumfang reduziert (Stichwort: ‚EF Core 1.0 ist noch nicht produktionsreif für Komplexszenarien') und hat sich in den Versionen 2, 3, 5, 6, 7, 8 und 9 zur Hauptlinie weiterentwickelt. Wichtige Meilensteine sind die Einführung von Owned Types, Query Filters, Compiled Queries, JSON Columns (EF 7) sowie Bulk-Operationen via ExecuteUpdate / ExecuteDelete (EF 7/8).
Eingeführt wurde EF Core von Microsoft, mit prägenden Namen wie Diego Vega, Andrew Peters und Arthur Vickers. In der frühen EF-Core-Phase (Versionen 1.0/1.1) gab es bewusst keinen ‚Entity Framework 7' — Microsoft hat mit der Umbenennung zu ‚EF Core' und einem Versionssprung zurück auf 1.0 deutlich gemacht, dass es sich um eine Neuentwicklung und nicht um eine kompatible Fortsetzung von EF6 handelt. Diese Entscheidung sorgte zunächst für Verwirrung und Migrationsaufwand, gilt heute aber als Beispiel für eine bewusste Entkopplung einer Marke von ihrer technischen Altlast.