DatenbankanbieterDatabase Providers

Entity Framework Core kann viele verschiedene Datenbanken über Plug-in-Bibliotheken erreichen, die als „Datenbankanbieter“ bezeichnet werden.Entity Framework Core can access many different databases through plug-in libraries called database providers.

Aktuelle AnbieterCurrent providers

Wichtig

EF Core-Anbieter werden durch eine Vielzahl von Quellen erstellt.EF Core providers are built by a variety of sources. Nicht alle Anbieter werden im Rahmen des Entity Entity Framework Core-Projekts verwaltet.Not all providers are maintained as part of the Entity Framework Core Project. Wenn Sie einen Anbieter in Betracht ziehen, sollten Sie Aspekte wie Qualität, Lizenzierung und Support auswerten, um sicherzustellen, dass dieser Ihren Anforderungen entspricht.When considering a provider, be sure to evaluate quality, licensing, support, etc. to ensure they meet your requirements. Lesen Sie außerdem in jedem Fall die ausführlichen Informationen zur Versionskompatibilität in der Dokumentation der einzelnen Anbieter.Also make sure you review each provider's documentation for detailed version compatibility information.

NuGet-PaketNuGet Package Unterstützte Datenbank-EnginesSupported database engines Maintainer/AnbieterMaintainer / Vendor Hinweise/AnforderungenNotes / Requirements Nützliche LinksUseful links
Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.SqlServer SQL Server 2008 oder höherSQL Server 2008 onwards EF Core-Projekt (Microsoft)EF Core Project (Microsoft) Docsdocs
Microsoft.EntityFrameworkCore.SqliteMicrosoft.EntityFrameworkCore.Sqlite SQLite 3.7 oder höherSQLite 3.7 onwards EF Core-Projekt (Microsoft)EF Core Project (Microsoft) Docsdocs
Microsoft.EntityFrameworkCore.InMemoryMicrosoft.EntityFrameworkCore.InMemory EF Core-In-Memory-DatenbankEF Core in-memory database EF Core-Projekt (Microsoft)EF Core Project (Microsoft) Nur für TestsFor testing only Docsdocs
Microsoft.EntityFrameworkCore.CosmosMicrosoft.EntityFrameworkCore.Cosmos Azure Cosmos DB SQL-APIAzure Cosmos DB SQL API EF Core-Projekt (Microsoft)EF Core Project (Microsoft) Nur VorschauPreview only Blogblog
Npgsql.EntityFrameworkCore.PostgreSQLNpgsql.EntityFrameworkCore.PostgreSQL PostgreSQLPostgreSQL Npgsql-EntwicklungsteamNpgsql Development Team Docsdocs
Pomelo.EntityFrameworkCore.MySqlPomelo.EntityFrameworkCore.MySql MySQL, MariaDBMySQL, MariaDB Pomelo Foundation-ProjektPomelo Foundation Project Infodateireadme
Pomelo.EntityFrameworkCore.MyCatPomelo.EntityFrameworkCore.MyCat MyCAT-ServerMyCAT Server Pomelo Foundation-ProjektPomelo Foundation Project Nur VorabversionPrerelease only Infodateireadme
EntityFrameworkCore.SqlServerCompact40EntityFrameworkCore.SqlServerCompact40 SQL Server Compact 4.0SQL Server Compact 4.0 Erik Ejlskov JensenErik Ejlskov Jensen .NET Framework.NET Framework Wikiwiki
EntityFrameworkCore.SqlServerCompact35EntityFrameworkCore.SqlServerCompact35 SQL Server Compact 3,5SQL Server Compact 3.5 Erik Ejlskov JensenErik Ejlskov Jensen .NET Framework.NET Framework Wikiwiki
FirebirdSql.EntityFrameworkCore.FirebirdFirebirdSql.EntityFrameworkCore.Firebird Firebird 2.5 und 3.xFirebird 2.5 and 3.x Jiří ČinčuraJiří Činčura Docsdocs
EntityFrameworkCore.FirebirdSqlEntityFrameworkCore.FirebirdSql Firebird 2.5 und 3.xFirebird 2.5 and 3.x Rafael AlmeidaRafael Almeida Wikiwiki
MySql.Data.EntityFrameworkCoreMySql.Data.EntityFrameworkCore MySQLMySQL MySQL-Projekt (Oracle)MySQL project (Oracle) Docsdocs
Oracle.EntityFrameworkCoreOracle.EntityFrameworkCore Oracle DB 11.2 und höherOracle DB 11.2 onwards OracleOracle VorabversionPrerelease Websitewebsite
IBM.EntityFrameworkCoreIBM.EntityFrameworkCore DB2, InformixDb2, Informix IBMIBM Windows-VersionWindows version Blogblog
IBM.EntityFrameworkCore-lnxIBM.EntityFrameworkCore-lnx DB2, InformixDb2, Informix IBMIBM Linux-VersionLinux version Blogblog
IBM.EntityFrameworkCore-osxIBM.EntityFrameworkCore-osx DB2, InformixDb2, Informix IBMIBM macOS-VersionmacOS version Blogblog
EntityFrameworkCore.JetEntityFrameworkCore.Jet Microsoft Access-DateienMicrosoft Access files BubiBubi .NET Framework.NET Framework Infodateireadme
EntityFrameworkCore.OpenEdgeEntityFrameworkCore.OpenEdge Progress OpenEdgeProgress OpenEdge Alex WieseAlex Wiese Infodateireadme
Devart.Data.Oracle.EFCoreDevart.Data.Oracle.EFCore Oracle DB 9.2.0.4 und höherOracle DB 9.2.0.4 onwards DevArtDevArt BezahltPaid Docsdocs
Devart.Data.PostgreSql.EFCoreDevart.Data.PostgreSql.EFCore PostgreSQL 8.0 oder höherPostgreSQL 8.0 onwards DevArtDevArt BezahltPaid Docsdocs
Devart.Data.SQLite.EFCoreDevart.Data.SQLite.EFCore SQLite 3 oder höherSQLite 3 onwards DevArtDevArt BezahltPaid Docsdocs
Devart.Data.MySql.EFCoreDevart.Data.MySql.EFCore MySQL 5 oder höherMySQL 5 onwards DevArtDevArt BezahltPaid Docsdocs

Zukünftige AnbieterFuture Providers

Cosmos DBCosmos DB

Wir haben einen EF Core-Anbieter für die SQL-API in Cosmos DB entwickelt.We have been developing an EF Core provider for the SQL API in Cosmos DB. Dies ist der erste vollständige dokumentorientierte Datenbankanbieter, den wir erstellt haben, und die Erkenntnisse aus dieser Übung werden Bestandteil der Verbesserungen im Entwurf nachfolgender Releases von EF Core und möglicherweise anderer, nicht relationaler Anbieter sein.This will be the first complete document-oriented database provider we have produced, and the learnings from this exercise are going to inform improvements in the design of future releases of EF Core and possibly other non-relational providers. Eine Vorschau ist im NuGet-Katalog verfügbar.A preview is available on the NuGet Gallery.

Oracle-ErstanbieterOracle first-party provider

Das Oracle .NET-Team hat die Betaversion des Oracle-Anbieters für EF Core veröffentlicht.The Oracle .NET team has published the beta of the Oracle provider for EF Core. Bei Fragen zu diesem Anbieter, einschließlich der Releasezeitachse, besuchen Sie sich die Website der Oracle-Community.Please direct any questions about this provider, including the release timeline, to the Oracle Community Site.

Hinzufügen eines Datenbankanbieters zu Ihrer AnwendungAdding a database provider to your application

Die meisten Datenbankanbieter für EF Core werden als NuGet-Pakete verteilt.Most database providers for EF Core are distributed as NuGet packages. Dies bedeutet, dass sie mithilfe des dotnet-Tools in der Befehlszeile installiert werden können:This means they can be installed using the dotnet tool in the command line:

dotnet add package provider_package_name

Alternativ können Sie die NuGet-Paket-Manager-Konsole in Visual Studio verwenden:Or in Visual Studio, using NuGet's Package Manager Console:

install-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.Once installed, you will configure the provider in your DbContext, either in the OnConfiguring method or in the AddDbContext method if you are using a dependency injection container. Die folgende Zeile konfiguriert z.B. den SQL Server-Anbieter mit der übergebenen Verbindungszeichenfolge:For example, the following line configures the SQL Server provider with the passed connection string:

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

Datenbankanbieter können EF Core erweitern, um datenbankspezifische Funktionen zu aktivieren.Database providers can extend EF Core to enable functionality unique to specific databases. Einige Konzepte gelten für die meisten Datenbanken und sind im Leistungsumfang der primären EF Core-Komponenten inbegriffen.Some concepts are common to most databases, and are included in the primary EF Core components. 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.Such concepts include expressing queries in LINQ, transactions, and tracking changes to objects once they are loaded from the database. Einige Konzepte gelten speziell für einen bestimmten Anbieter.Some concepts are specific to a particular provider. Der SQL Server-Anbieter ermöglicht es Ihnen beispielsweise, speicheroptimierte Tabellen (ein für SQL Server spezifisches Feature) zu konfigurieren.For example, the SQL Server provider allows you to configure memory-optimized tables (a feature specific to SQL Server). Andere Konzepte gelten speziell für eine Klasse von Anbietern.Other concepts are specific to a class of providers. 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.For example, EF Core providers for relational databases build on the common Microsoft.EntityFrameworkCore.Relational library, which provides APIs for configuring table and column mappings, foreign key constraints, etc. Providers are usually distributed as NuGet packages.

Wichtig

Eine neue veröffentlichte Patchversion von EF Core enthält häufig Updates für das Microsoft.EntityFrameworkCore.Relational-Paket.When a new patch version of EF Core is released, it often includes updates to the Microsoft.EntityFrameworkCore.Relational package. Wenn Sie einen relationale Datenbankanbieter hinzufügen, wird dieses Paket zu einer transitiven Abhängigkeit Ihrer Anwendung.When you add a relational database provider, this package becomes a transitive dependency of your application. 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.But many providers are released independently from EF Core and may not be updated to depend on the newer patch version of that package. 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.In order to make sure you will get all bug fixes, it is recommended that you add the patch version of Microsoft.EntityFrameworkCore.Relational as a direct dependency of your application.