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 Framework Core-Projekts von Microsoft 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 nicht für Hauptversionen verwendet werden. Beispielsweise ein für EF Core 7 veröffentlichter Anbieter funktioniert nicht mit EF Core 8.

NuGet-Paket Unterstützte Datenbank-Engines Maintainer/Anbieter Hinweise/Anforderungen Für EF Core Nützliche Links
Microsoft.EntityFrameworkCore.SqlServer Azure SQL und SQL Server 2012 oder höher EF Core-Projekt (Microsoft) 6, 7, 8 docs
Microsoft.EntityFrameworkCore.Sqlite SQLite 3.7 oder höher EF Core-Projekt (Microsoft) 6, 7, 8 docs
Microsoft.EntityFrameworkCore.InMemory EF Core-In-Memory-Datenbank EF Core-Projekt (Microsoft) Einschränkungen 6, 7, 8 docs
Microsoft.EntityFrameworkCore.Cosmos Azure Cosmos DB SQL-API EF Core-Projekt (Microsoft) 6, 7, 8 docs
Npgsql.EntityFrameworkCore.PostgreSQL PostgreSQL Npgsql-Entwicklungsteam 6, 7, 8 docs
Pomelo.EntityFrameworkCore.MySql MySQL, MariaDB Pomelo Foundation-Projekt 6, 7, 8 readme
MySql.EntityFrameworkCore MySQL MySQL-Projekt (Oracle) 6, 7 docs
Oracle.EntityFrameworkCore Oracle DB 11.2 und höher Oracle 6, 7 Website
MongoDB.EntityFrameworkCore MongoDB MongoDB Derzeit als Vorschauversion verfügbar 7 docs
Devart.Data.MySql.EFCore MySQL 5 oder höher DevArt Bezahlt 6, 7, 8 docs
Devart.Data.Oracle.EFCore Oracle DB 9.2.0.4 und höher DevArt Bezahlt 6, 7, 8 docs
Devart.Data.PostgreSql.EFCore PostgreSQL 8.0 oder höher DevArt Bezahlt 6, 7, 8 docs
Devart.Data.SQLite.EFCore SQLite 3 oder höher DevArt Bezahlt 6, 7, 8 docs
Devart.Data.DB2.EFCore DB2 DevArt Bezahlt 6, 7, 8 docs
Devart.Data.Bigcommerce.EFCore BigCommerce DevArt Bezahlt 6, 7, 8 docs
Devart.Data.Dynamics.EFCore Microsoft Dynamics 365 DevArt Bezahlt 6, 7, 8 docs
Devart.Data.FreshBooks.EFCore FreshBooks DevArt Bezahlt 6, 7, 8 docs
Devart.Data.Magento.EFCore Magento DevArt Bezahlt 6, 7, 8 docs
Devart.Data.MailChimp.EFCore Mailchimp DevArt Bezahlt 6, 7, 8 docs
Devart.Data.QuickBooks.EFCore QuickBooks. DevArt Bezahlt 6, 7, 8 docs
Devart.Data.Salesforce.EFCore Salesforce DevArt Bezahlt 6, 7, 8 docs
Devart.Data.ExactTarget.EFCore Salesforce MC (ExactTarget) DevArt Bezahlt 6, 7, 8 docs
Devart.Data.Sugar.EFCore SugarCRM DevArt Bezahlt 6, 7, 8 docs
Devart.Data.Zoho.EFCore Zoho CRM DevArt Bezahlt 6, 7, 8 docs
MASES.EntityFrameworkCore.KNet Apache Kafka MASES Group Testversion, Abonnement 6, 7, 8 docs
InterBase InterBase InterBase 6 docs
FirebirdSql.EntityFrameworkCore.Firebird Firebird 3.0 und höher Jiří Činčura 7 docs
IBM.EntityFrameworkCore DB2, Informix IBM Kostenpflichtig, Windows 6 Erste Schritte
IBM.EntityFrameworkCore-lnx DB2, Informix IBM Kostenpflichtig, Linux 6 Erste Schritte
IBM.EntityFrameworkCore-osx DB2, Informix IBM Kostenpflichtig, macOS 6 Erste Schritte
EntityFrameworkCore.Jet Microsoft Access-Dateien CirrusRedOrg Windows 6, 7, 8 (Vorschau) readme
Google.Cloud.EntityFrameworkCore.Spanner Google Cloud Spanner Cloud Spanner-Ökosystem Derzeit als Vorschauversion verfügbar 6 Tutorial
Teradata.EntityFrameworkCore Teradata-Datenbank ab 16.10 Teradata 3 Website
FileContextCore Speichert Daten in Dateien Morris Janatzek Dient Entwicklungszwecken 3 readme
FileBaseContext Speichern von Tabellen in Dateien k.D.g Dient Entwicklungszwecken 7, 8 readme
EntityFrameworkCore.SqlServerCompact35 SQL Server Compact 3,5 Erik Ejlskov Jensen .NET Framework 2 wiki
EntityFrameworkCore.SqlServerCompact40 SQL Server Compact 4.0 Erik Ejlskov Jensen .NET Framework 2 wiki
EntityFrameworkCore.OpenEdge Progress OpenEdge Alex Wiese 2 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.