Telefon (Mo-Fr 10-16 Uhr):
0201/649590-0
|
Kontaktformular
MENU
Start
Hauptseite
Angebote im Überblick
Kernkompetenzen
Softwareentwicklung
Beratung
Firmen-Schulungen
Offene Seminare
Online-Maßnahmen
Vorträge
Coaching
Support
Fachbücher
Fachartikel
Konditionen
Themen
Themenüberblick
Aktuelle Themen
Web & Cloud
Apps / Mobilplattformen
Benutzeroberflächen / User Experience
.NET
JavaScript/TypeScript
Java
Programmiersprachen/Sprachsyntax
Entwicklungswerkzeuge
Scripting
Softwareentwicklung allgemein
Datenbanken
Betriebssysteme und Virtualisierung
Microsoft Server-Produkte
Windows und Microsoft Office für Anwender
Allgemeine IT-Themen
Beratung
Beratungsthemen
Coaching
Softwareentwicklung
Technischer Support
Unsere Top-Berater
Referenzkunden
Angebotsanfrage
Individuelle Schulungen
1020 Schulungsthemen
Agendakonfigurator
Weiterbildungsphilosophie
Didaktische Konzepte
Vor-Ort oder Online
Unsere Top-Trainer
Referenzkunden
Teilnehmerfeedback
Angebotsanfrage
Offene Seminare
.NET-Akademie
.NET/C#-Basisseminar
WPF
WinUI
.NET MAUI
Blazor
ASP.NET WebAPI & gRPC
Entity Framework Core
Unit Testing / TDD
PowerShell
Infotage
Wissen
Übersicht
Fachbücher
Fachartikel
Konferenzvorträge
Konferenzen/Events
Spickzettel
Lexikon/Glossar
Programmcodebibliothek
Versionshistorie
Weblog
Downloads
Newsletter
Community-/Leserportal
Registrierung
.NET/C#/Visual Studio
.NET 10.0
.NET 9.0
.NET 8.0
ASP.NET (Core)/Blazor
PowerShell
Über uns
Kontakt
Selbstdarstellung
Kernkompetenzen
Dr. Holger Schwichtenberg
Top-Experten
Leitung & Kundenteam
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Konditionen
Stellenangebote
Weitere Websites
Impressum
Datenschutzerklärung, Haftung, Urheberrecht, Barrierefreiheit
Suche
Themenkatalog
Tag Cloud
Volltextsuche
Site Map
FAQs
Was ist Entity Framework Core?
von
Dr. Holger Schwichtenberg
, zuletzt aktualisiert am 17.08.2022 23:30:10
Neuimplementierung des
Objekt
-Relationalen Mappers "
ADO.NET Entity Framework
"
Versionen
Erste öffentliche Erwähnung: 13.5.2014 (
TechEd
USA) als "
Entity Framework 7.0
"
[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
Datenbankmanagementsystem
en. 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
EDM
X
Model First mit
EDM
X
ObjectContext
Entity Object
Entity SQL
Weitere Informationen finden Sie in diesen Beiträgen:
.NET 10.0
.NET 5.0
.NET 6.0
.NET 7.0
.NET 8.0
.NET 9.0
.NET Core
.NET Core 2.2
.NET Core 3.0
.NET Core 3.1
ADO.NET Entity Framework
ASP.NET Core Razor Pages
ASP.NET Core 2.0
Azure Cosmos DB
DBNULL
Entity Framework 7.0
Entity Framework Core 1.1
Entity Framework Core 10.0
Entity Framework Core 2.0
Entity Framework Core 3.0
Entity Framework Core 3.1
Entity Framework Core 5.0
Entity Framework Core 6.0
Entity Framework Core 7.0
Entity Framework Core 8.0
Entity Framework Core 9.0
Forward Engineering
Kontext
Lazy Loading
Microsoft BUILD-Konferenz 2017
Native AOT
NuGet Library Package Manager
Objekt-Relationales Mapping
Package Manager Console
Reverse Engineering
System.Transactions
Temporale Tabellen
Visual Studio 2017
YAML Ain't Markup Language