Sie sind hier: Wissen
Begriff Entity Framework Core
Abkürzung EFC
Eintrag zuletzt aktualisiert am 17.08.2022

 Zur Stichwortliste unseres Lexikons

Was ist Entity Framework Core ?

Neuimplementierung des Objekt-Relationalen Mappers "ADO.NET Entity Framework"

Versionen

Namen

Entity Framework Core hieß bei der ersten öffentlichen Erwähnung am 13.5.2014 noch "Entity Framework 7.0" als Nachfolger des "ADO.NET Entity Framework 6.2".

Microsoft hat den Namen aber vor dem Erscheinen der ersten Version im Januar 2016 auf Entity Framework Core 1.0 geändert; im Zuge der Umbenennung von .NET Core 5.0 und .NET Core 1.0 und ASP.NET Core 5.0 in ASP.NET Core 1.1 [http://www.hanselman.com/blog/aspnet-5-is-dead-introducing-aspnet-core-10-and-net-core-10].

Seit dem Jahr 2022 Microsoft spricht in den Blogeinträgen für die kommende Version teilweise noch von "Entity Framework 7.0", abgekürzt EF7. Damit wird es schwieriger, die moderne Produktlinie von dem klassischen Entity Framework (derzeit Version 6.4) abzugrenzen sowie dem bereits zwischen 2014 und 2016 verwendeten Namen "Entity Framework 7.0" für die erste Version des modernen Entity Framework.

https://devblogs.microsoft.com/dotnet/announcing-ef7-preview5
https://devblogs.microsoft.com/dotnet/announcing-ef7-preview6
https://devblogs.microsoft.com/dotnet/announcing-ef7-preview7

Plattformen

Das neue Entity Framework Core (EF Core) lief ursprünglich auf allen .NET-Varianten (.NET Framework, .NET Core, Mono und Xamarin).

Entity Framework Core läuft aber seit Version 5.0 nur noch auf der jeweils aktuellsten modernen .NET-Version, also z.B. Entity Framework Core 6.0 auf .NET 6.0. Entwickler, die Entity Framework Core auf dem klassisches .NET Framework genutzt haben, stecken in einer Sackgasse. Sie können nur höchstens die Version 3.1 verwenden, deren Support Ende 2021 endet.

Unterstützte Datenbanken

Genau wie für das klassisches Entity Framework ist auch für Entity Framework Core ein spezieller Datenbanktreiber notwendig, der über die Fähigkeiten eines normalen ADO.NET-Treibers hinausgeht. Sofern nicht beschränkt durch das Betriebssystem, unterstützt Entity Framework Core den Zugriff auf eine Vielzahl von Datenbankmanagementsystemen. Microsoft selbst liefert Entity Framework Core-Treiber für Microsoft SQL Server, SQLite, und ComosDB sowie einen In-Memory-Treiber für Unit Testing. Von den jeweiligen Datenbankherstellern, kommerziellen Drittanbietern oder aus der Community kommen Treiber für Oracle, MariaDB, PostgreSQL, MySQL, Firebird, DB2, Informix u.a. (siehe Liste unter [https://docs.microsoft.com/de-de/ef/core/providers/]). Sogar einen Treiber für Microsoft Access gibt es, der aber bei Entity Framework Core 3.1 verharrt ist. Entity Framework Core ist auch nicht auf relationale Datenbanken beschränkt, sondern kann auch NoSQL-Datenbanken ansprechen. Die Entwicklung eines Treibers für MongoDB ist in den Kinderschuhen stecken geblieben.

siehe https://docs.microsoft.com/de-de/ef/core/providers/

Ziele

  • Leichtgewichtiger: schneller & weniger RAM-Bedarf
  • Kein Ziel: Kompatibilität zu EF 6.x
  • Kein Upgradetool von EF 6.x zu EF Core!

Neue Features in EF Core gegenüber dem klassischen ADO.NET Entity Framework

X-Platform: Windows, Linux, Mac, iOS, Android
SQLite-Provider von Microsoft
In-Memory-Provider
NoSql-Unterstützung
Mapping auf Memory-Tables
Default Values / Computed Values
Sequences
Shadow State (Mapping von zusätzlichen Spalten)
Indexer Properties (Mapping von zusätzlichen Spalten und Tabellen)
CUD-Batching
Default Query Tracking Behaviour
Global Query Filter
Value Converter
Filtered Includes
Auto-Includes
Savepoints und Transaction-Ids

Verbesserte Funktionen in EF Core gegenüber dem klassischen ADO.NET Entity Framework

Deutlich bessere Performance
Schemamigrationen im Team
Mischung SQL/SP/TVF und LINQ
Syntax für Fluent-API
Migration zur Laufzeit
Skip() ohne OrderBy()
Generiertes SQL ist einfacher und übersichtlicher
Projektionen auf Entitätsklasse
ThenInclude()
Weniger Aufrufe von DetectChanges()

Entfallene Features gegenüber dem Klassischen Entity Framework

DB First mit EDMX
Model First mit EDMX
ObjectContext
Entity Object
Entity SQL

Beratung & Support

Schulungen zu diesem Thema

 Entity Framework Core 9.0 - Änderungen und Neuerungen gegenüber Entity Framework Core 8.0
 ADO.NET Entity Framework (EF) / Entity Framework Core (EF Core) - Performance-Tuning / Leistungsoptimierung
 Entity Framework Core 5.0 (EF Core 5.0) - Änderungen und Neuerungen gegenüber Entity Framework Core 3.1/3.0
 Umstieg auf Entity Framework Core 8.0/9.0 (Umstellung/Migration von Entity Framework 6.0/7.0/8.0)
 Entity Framework Core 7.0 (EF Core 7.0) - Änderungen und Neuerungen gegenüber Entity Framework Core 6.0
 Neuerungen in .NET Core 2.0 gegenüber Version 1.x (inkl. ASP.NET Core, Entity Framework Core)
 Neuerungen in .NET Core 3.0/3.1 gegenüber Version 2.x (inkl. ASP.NET Core, Entity Framework Core, WPF und Windows Forms)
 Neuerungen in .NET Core 2.1/2.2 gegenüber Version 2.0 (inkl. ASP.NET Core, Entity Framework Core)
 Entity Framework Core 6.0 (EF Core 6.0) - Änderungen und Neuerungen gegenüber Entity Framework Core 5.0
 Entity Framework Core 8.0/9.0 (EF Core 8.0/9.0): Objekt-Relationales Mapping (ORM) für .NET 8.0/9.0 (komplettes Wissen)
 Entity Framework Core 8.0 - Änderungen und Neuerungen gegenüber Entity Framework Core 7.0
 .NET Akademie: Datenbankprogrammierung mit Entity Framework Core (3-Tages-Agenda des öffentlichen Seminars)
 .NET-Sicherheit (.NET Security)
 .NET 5.0 - Änderungen und Neuerungen gegenüber .NET Core 3.x
 .NET-/.NET Core-Entwickler-Update 2018
 ASP.NET Model View Controller (ASP.NET MVC) und ASP.NET WebAPI für ASP.NET MVC 5.x oder ASP.NET MVC Core 6.0/7.0/8.0
 .NET-Entwickler-Update 2021
 ASP.NET Core 8.0/9.0: komplettes Wissen - mit MVC, Razor Pages, Blazor, WebAPIs und gRPC
 .NET-Entwickler-Update 2023
 .NET 8.0 - Änderungen und Neuerungen gegenüber .NET 7.0
 Umstieg auf .NET 8.0/9.0 - Entwicklerworkshop mit allen Anwendungsgebieten (Umstellung/Migration von klassischem .NET Framework zu .NET 6.0/8.0/9.0)
 Microsoft SQL Server (MSSQL) - Aufbauwissen
 .NET-/.NET Core-Entwickler-Update 2019
 Moderne Web-Anwendungen mit Blazor (Blazor United und/oder Blazor SSR und/oder Blazor WebAssembly und/oder Blazor Server und/oder Blazor Hybrid)
 .NET 6.0 - Änderungen und Neuerungen gegenüber .NET 5.0
 .NET 9.0 - Änderungen und Neuerungen gegenüber .NET 8.0
 Visual Basic .NET für Umsteiger von VBA/VB 4/5/6
 .NET-Überblick für .NET-Einsteiger und .NET-Entscheider (wahlweise für das klassische .NET Framework und/oder das moderne .NET)
 Azure Cosmos DB
 Umstieg auf .NET 8.0/9.0 - Entwicklerworkshop (Umstellung/Migration von klassischem .NET Framework zu .NET 6.0/8.0/9.0)
 Anfrage für eine individuelle Schulung zum Thema Entity Framework Core EFC  Gesamter Schulungsthemenkatalog