Datenbankanbieter

Entity Framework Core kann viele verschiedene Datenbanken über Plug-in-Bibliotheken erreichen, die als „Datenbankanbieter“ bezeichnet werden.

Aktuelle Anbieter

Wichtig

EF Core-Anbieter werden durch eine Vielzahl von Quellen erstellt. Nicht alle Anbieter werden im Rahmen des Entity Entity Framework Core-Projekts verwaltet. Wenn Sie einen Anbieter in Betracht ziehen, sollten Sie Aspekte wie Qualität, Lizenzierung und Support auswerten, um sicherzustellen, dass dieser Ihren Anforderungen entspricht. Lesen Sie außerdem in jedem Fall die ausführlichen Informationen zur Versionskompatibilität in der Dokumentation der einzelnen Anbieter.

Wichtig

EF Core-Anbieter können in der Regel für alle Nebenversionen verwendet werden, nicht jedoch für Hauptversionen. Ein für EF Core 2.1 veröffentlichter Anbieter sollte beispielsweise mit EF Core 2.2 funktionieren, kann jedoch nicht mit EF Core 3.0 verwendet werden.

NuGet-Paket Unterstützte Datenbank-Engines Maintainer/Anbieter Hinweise/Anforderungen Zielversion Nützliche Links
Microsoft.EntityFrameworkCore.SqlServer SQL Server 2012 oder höher EF Core-Projekt (Microsoft) 5.0 docs
Microsoft.EntityFrameworkCore.Sqlite SQLite 3.7 oder höher EF Core-Projekt (Microsoft) 5.0 docs
Microsoft.EntityFrameworkCore.InMemory EF Core-In-Memory-Datenbank EF Core-Projekt (Microsoft) Einschränkungen 5.0 docs
Microsoft.EntityFrameworkCore.Cosmos Azure Cosmos DB SQL-API EF Core-Projekt (Microsoft) 5.0 docs
Npgsql.EntityFrameworkCore.PostgreSQL PostgreSQL Npgsql-Entwicklungsteam 5.0 docs
Pomelo.EntityFrameworkCore.MySql MySQL, MariaDB Pomelo Foundation-Projekt 5.0 readme
MySql.EntityFrameworkCore MySQL MySQL-Projekt (Oracle) 5.0 docs
Oracle.EntityFrameworkCore Oracle DB 11.2 und höher Oracle 5.0 Website
Devart.Data.MySql.EFCore MySQL 5 oder höher DevArt Bezahlt 5.0 docs
Devart.Data.Oracle.EFCore Oracle DB 9.2.0.4 und höher DevArt Bezahlt 5.0 docs
Devart.Data.PostgreSql.EFCore PostgreSQL 8.0 oder höher DevArt Bezahlt 5.0 docs
Devart.Data.SQLite.EFCore SQLite 3 oder höher DevArt Bezahlt 5.0 docs
FirebirdSql.EntityFrameworkCore.Firebird Firebird 3.0 und höher Jiří Činčura 5.0 docs
IBM.EntityFrameworkCore DB2, Informix IBM Kostenpflichtig, Windows 5.0 Erste Schritte
IBM.EntityFrameworkCore-lnx DB2, Informix IBM Kostenpflichtig, Linux 5.0 Erste Schritte
IBM.EntityFrameworkCore-osx DB2, Informix IBM Kostenpflichtig, macOS 5.0 Erste Schritte
EntityFrameworkCore.Jet Microsoft Access-Dateien Bubi 3.1 readme
Teradata.EntityFrameworkCore Teradata-Datenbank ab 16.10 Teradata 3.1 Website
Google.Cloud.EntityFrameworkCore.Spanner Google Cloud Spanner Cloud Spanner-Ökosystem Derzeit als Vorschauversion verfügbar 3.1 Tutorial
FileContextCore Speichert Daten in Dateien Morris Janatzek Dient Entwicklungszwecken 3.0 readme
EntityFrameworkCore.SqlServerCompact35 SQL Server Compact 3,5 Erik Ejlskov Jensen .NET Framework 2.2 wiki
EntityFrameworkCore.SqlServerCompact40 SQL Server Compact 4.0 Erik Ejlskov Jensen .NET Framework 2.2 wiki
EntityFrameworkCore.OpenEdge Progress OpenEdge Alex Wiese 2.1 readme

Hinzufügen eines Datenbankanbieters zu Ihrer Anwendung

Die meisten Datenbankanbieter für EF Core werden als NuGet-Pakete verteilt und können wie folgt installiert werden:

dotnet add package provider_package_name

Nach Abschluss der Installation konfigurieren Sie den Anbieter in DbContext entweder in der OnConfiguring-Methode oder in der AddDbContext-Methode, wenn Sie einen Abhängigkeitsinjektionscontainer verwenden. Die folgende Zeile konfiguriert z.B. den SQL Server-Anbieter mit der übergebenen Verbindungszeichenfolge:

optionsBuilder.UseSqlServer(
    "Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;");

Datenbankanbieter können EF Core erweitern, um datenbankspezifische Funktionen zu aktivieren. Einige Konzepte gelten für die meisten Datenbanken und sind im Leistungsumfang der primären EF Core-Komponenten inbegriffen. Zu diesen Konzepten gehören das Ausdrücken von Abfragen in LINQ, Transaktionen und das Nachverfolgen von Änderungen an Objekten, nachdem sie aus der Datenbank geladen wurden. Einige Konzepte gelten speziell für einen bestimmten Anbieter. Der SQL Server-Anbieter ermöglicht es Ihnen beispielsweise, speicheroptimierte Tabellen (ein für SQL Server spezifisches Feature) zu konfigurieren. Andere Konzepte gelten speziell für eine Klasse von Anbietern. Beispielsweise bauen EF Core-Anbieter für relationale Datenbanken auf der gemeinsamen Microsoft.EntityFrameworkCore.Relational-Bibliothek auf, die u.a. APIs für die Konfiguration von Tabellen- und Spaltenzuordnungen und Fremdschlüsseleinschränkungen bereitstellt. Anbieter werden in der Regel als NuGet-Pakete verteilt.

Wichtig

Eine neue veröffentlichte Patchversion von EF Core enthält häufig Updates für das Microsoft.EntityFrameworkCore.Relational-Paket. Wenn Sie einen relationale Datenbankanbieter hinzufügen, wird dieses Paket zu einer transitiven Abhängigkeit Ihrer Anwendung. Viele Anbieter werden jedoch unabhängig von EF Core veröffentlicht und können nicht dahingehend aktualisiert werden, dass sie von der neueren Patchversion dieses Pakets abhängen. Um sicherzustellen, dass Sie von allen Fehlerbehebungen profitieren, wird empfohlen, die Patchversion von Microsoft.EntityFrameworkCore.Relational als direkte Abhängigkeit von Ihrer Anwendung hinzuzufügen.