Dostawcy baz danychDatabase Providers

Entity Framework Core mogą uzyskiwać dostęp w wielu różnych baz danych za pomocą wtyczki bibliotek nazywanych dostawcami bazy danych.Entity Framework Core can access many different databases through plug-in libraries called database providers.

Bieżącego dostawcyCurrent providers

Ważne

EF Core dostawcy są tworzone za pomocą różnych źródeł.EF Core providers are built by a variety of sources. Nie wszyscy dostawcy są przechowywane jako część projektu programu Entity Framework Core.Not all providers are maintained as part of the Entity Framework Core Project. Podczas wybierania dostawcy, pamiętaj ocenić jakość, licencjonowanie, pomocy technicznej, itp., aby upewnić się, że spełniają one wymagania.When considering a provider, be sure to evaluate quality, licensing, support, etc. to ensure they meet your requirements. Ponadto upewnij się, że przejrzenie dokumentacji poszczególnych dostawców wersji szczegółowych informacji dotyczących zgodności.Also make sure you review each provider's documentation for detailed version compatibility information.

Pakiet NuGetNuGet Package Obsługiwanych aparatów bazy danychSupported database engines Element utrzymujący / dostawcyMaintainer / Vendor Informacje o / wymagańNotes / Requirements Przydatne linkiUseful links
Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.SqlServer SQL Server 2008 lub nowszySQL Server 2008 onwards Projekt programu EF Core (Microsoft)EF Core Project (Microsoft) Dokumentacjadocs
Microsoft.EntityFrameworkCore.SqliteMicrosoft.EntityFrameworkCore.Sqlite Bazy danych SQLite 3.7 lub nowszySQLite 3.7 onwards Projekt programu EF Core (Microsoft)EF Core Project (Microsoft) Dokumentacjadocs
Microsoft.EntityFrameworkCore.InMemoryMicrosoft.EntityFrameworkCore.InMemory Baza danych programu EF Core w pamięciEF Core in-memory database Projekt programu EF Core (Microsoft)EF Core Project (Microsoft) Tylko do celów testowychFor testing only Dokumentacjadocs
Microsoft.EntityFrameworkCore.CosmosMicrosoft.EntityFrameworkCore.Cosmos Interfejs API SQL usługi Azure Cosmos DBAzure Cosmos DB SQL API Projekt programu EF Core (Microsoft)EF Core Project (Microsoft) Tylko wersja zapoznawczaPreview only blogblog
Npgsql.EntityFrameworkCore.PostgreSQLNpgsql.EntityFrameworkCore.PostgreSQL PostgreSQLPostgreSQL Zespół programistyczny NpgsqlNpgsql Development Team Dokumentacjadocs
Pomelo.EntityFrameworkCore.MySqlPomelo.EntityFrameworkCore.MySql MySQL, MariaDBMySQL, MariaDB Pomelo Foundation ProjectPomelo Foundation Project readmereadme
Pomelo.EntityFrameworkCore.MyCatPomelo.EntityFrameworkCore.MyCat MyCAT ServerMyCAT Server Pomelo Foundation ProjectPomelo Foundation Project Tylko wersję wstępnąPrerelease only readmereadme
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 i 3.xFirebird 2.5 and 3.x Jiří ČinčuraJiří Činčura Dokumentacjadocs
EntityFrameworkCore.FirebirdSqlEntityFrameworkCore.FirebirdSql Firebird 2.5 i 3.xFirebird 2.5 and 3.x Rafael AlmeidaRafael Almeida wikiwiki
MySql.Data.EntityFrameworkCoreMySql.Data.EntityFrameworkCore MySQLMySQL Projekt MySQL (Oracle)MySQL project (Oracle) Dokumentacjadocs
Oracle.EntityFrameworkCoreOracle.EntityFrameworkCore Oracle DB 11.2 lub nowszyOracle DB 11.2 onwards OracleOracle Wersja wstępnaPrerelease Witryny sieci Webwebsite
IBM.EntityFrameworkCoreIBM.EntityFrameworkCore Db2, InformixDb2, Informix IBMIBM Wersja WindowsWindows version blogblog
IBM.EntityFrameworkCore-lnxIBM.EntityFrameworkCore-lnx Db2, InformixDb2, Informix IBMIBM Wersji systemu LinuxLinux version blogblog
IBM.EntityFrameworkCore-osxIBM.EntityFrameworkCore-osx Db2, InformixDb2, Informix IBMIBM wersja systemu macOSmacOS version blogblog
EntityFrameworkCore.JetEntityFrameworkCore.Jet Pliki programu Microsoft AccessMicrosoft Access files BubiBubi .NET Framework.NET Framework readmereadme
EntityFrameworkCore.OpenEdgeEntityFrameworkCore.OpenEdge OpenEdge postępuProgress OpenEdge Alex WieseAlex Wiese readmereadme
Devart.Data.Oracle.EFCoreDevart.Data.Oracle.EFCore Oracle DB 9.2.0.4 lub nowszyOracle DB 9.2.0.4 onwards DevArtDevArt PłatnePaid Dokumentacjadocs
Devart.Data.PostgreSql.EFCoreDevart.Data.PostgreSql.EFCore PostgreSQL 8.0 lub nowszyPostgreSQL 8.0 onwards DevArtDevArt PłatnePaid Dokumentacjadocs
Devart.Data.SQLite.EFCoreDevart.Data.SQLite.EFCore 3 bazy danych SQLiteSQLite 3 onwards DevArtDevArt PłatnePaid Dokumentacjadocs
Devart.Data.MySql.EFCoreDevart.Data.MySql.EFCore MySQL 5 lub nowszyMySQL 5 onwards DevArtDevArt PłatnePaid Dokumentacjadocs

Przyszłe dostawcówFuture Providers

Cosmos DBCosmos DB

Mają firma Microsoft opracowuje dostawcę programu EF Core dla interfejsu API SQL w usłudze Cosmos DB.We have been developing an EF Core provider for the SQL API in Cosmos DB. Jest to pierwszy dostawca pełnej korzystający z dokumentów bazy danych, który możemy zostały utworzone, a informacje w tym ćwiczeniu będzie informować ulepszenia w projekcie przyszłych wersjach programu EF Core i prawdopodobnie innych dostawców nierelacyjnych.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. Podgląd jest dostępny w galerii pakietów NuGet.A preview is available on the NuGet Gallery.

Dostawca programu Oracle firmy MicrosoftOracle first-party provider

Zespół Oracle .NET został opublikowany wersją beta dostawca programu Oracle dla platformy EF Core.The Oracle .NET team has published the beta of the Oracle provider for EF Core. Pytania dotyczące tego dostawcy, w tym do osi czasu w wersji należy kierować witryny społeczności Oracle.Please direct any questions about this provider, including the release timeline, to the Oracle Community Site.

Dodawanie dostawcy bazy danych do aplikacjiAdding a database provider to your application

Większość dostawców bazy danych dla platformy EF Core są dystrybuowane jako pakiety NuGet.Most database providers for EF Core are distributed as NuGet packages. Oznacza to, mogą być instalowane za pomocą dotnet narzędzia w wierszu polecenia:This means they can be installed using the dotnet tool in the command line:

dotnet add package provider_package_name

Lub w programie Visual Studio przy użyciu konsoli Menedżera pakietów NuGet:Or in Visual Studio, using NuGet's Package Manager Console:

install-package provider_package_name

Po zainstalowaniu skonfiguruje dostawcy w Twojej DbContext, albo w OnConfiguring metody lub AddDbContext metody korzystania z kontenera iniekcji zależności.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. Na przykład następujący wiersz konfiguruje dostawcę programu SQL Server przy użyciu parametrów połączenia przekazany: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;");

Dostawcy baz danych można rozszerzyć programu EF Core, aby włączyć funkcje unikatowe dla konkretnych baz danych.Database providers can extend EF Core to enable functionality unique to specific databases. Niektóre pojęcia są wspólne dla większości baz danych i są objęte podstawowe składniki programu EF Core.Some concepts are common to most databases, and are included in the primary EF Core components. Takie pojęcia zawierają wyrażenia zapytania w LINQ, transakcji i śledzenie zmian obiektów, gdy są one załadowane z bazy danych.Such concepts include expressing queries in LINQ, transactions, and tracking changes to objects once they are loaded from the database. Niektóre pojęcia są specyficzne dla określonego dostawcy.Some concepts are specific to a particular provider. Na przykład dostawca programu SQL Server umożliwia skonfigurować tabele zoptymalizowane pod kątem pamięci (funkcja specyficzna dla programu SQL Server).For example, the SQL Server provider allows you to configure memory-optimized tables (a feature specific to SQL Server). Inne pojęcia są specyficzne dla klasy dostawców.Other concepts are specific to a class of providers. Na przykład utworzyć dostawcy programu EF Core dla relacyjnych baz danych na wspólnej Microsoft.EntityFrameworkCore.Relational biblioteki, która udostępnia interfejsy API do skonfigurowania mapowania tabel i kolumn, ograniczeń klucza obcego, itp. Dostawcy są zazwyczaj dystrybuowane jako pakiety NuGet.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.

Ważne

Po wydaniu nowej wersji poprawki programu EF Core często obejmuje aktualizacje Microsoft.EntityFrameworkCore.Relational pakietu.When a new patch version of EF Core is released, it often includes updates to the Microsoft.EntityFrameworkCore.Relational package. Po dodaniu dostawcy relacyjnej bazy danych, ten pakiet uzależnienie przechodnie aplikacji.When you add a relational database provider, this package becomes a transitive dependency of your application. Jednak wielu dostawców są wydawane niezależnie od programu EF Core i nie mogą być aktualizowane są zależne od nowszej wersji tego pakietu poprawek.But many providers are released independently from EF Core and may not be updated to depend on the newer patch version of that package. Aby upewnić się, otrzymasz wszystkie poprawki błędów, zaleca się dodawania wersję poprawki Microsoft.EntityFrameworkCore.Relational jako bezpośrednie zależności aplikacji.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.