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 projektuPomelo Foundation Project readmereadme
Pomelo.EntityFrameworkCore.MyCatPomelo.EntityFrameworkCore.MyCat MyCAT serweraMyCAT Server Pomelo Foundation projektuPomelo 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
EntityFrameworkCore.JetEntityFrameworkCore.Jet Pliki programu Microsoft AccessMicrosoft Access files BubiBubi .NET Framework.NET Framework readmereadme
MySql.Data.EntityFrameworkCoreMySql.Data.EntityFrameworkCore MySQLMySQL Projekt MySQL (Oracle)MySQL project (Oracle) Dokumentacjadocs
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
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.OpenEdgeEntityFrameworkCore.OpenEdge OpenEdge postępuProgress OpenEdge Alex WieseAlex Wiese readmereadme
Devart.Data.Oracle.EFCoreDevart.Data.Oracle.EFCore Oracle 9.2.0.4 lub nowszyOracle 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

Usługa 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.

OracleOracle

Zespołu Oracle .NET ogłosiła, czy jest planowane wersji dostawcy firmy Microsoft dla platformy EF Core w trzecim kwartale 2018 r.The Oracle .NET team has announced they are planning to release a first-party provider for EF Core approximately in the third quarter of 2018. Zobacz ich instrukcji kierunek dla platformy .NET Core i Entity Framework Core Aby uzyskać więcej informacji.See their statement of direction for .NET Core and Entity Framework Core for more information. 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.

W międzyczasie tworzył zespołu EF dostawcy programu EF Core próbki dla baz danych Oracle.In the meanwhile, the EF team has produced a sample EF Core provider for Oracle databases. Celem projektu nie jest utworzyć dostawcę usługi programu EF Core należące do firmy Microsoft.The purpose of the project is not to produce an EF Core provider owned by Microsoft. Rozpoczęliśmy projekt, aby zidentyfikować luki w działaniu relacyjnych i podstawowej programu EF Core, którym Musieliśmy adres w celu lepszej obsługi bazy danych Oracle.We started the project to identify gaps in EF Core's relational and base functionality which we needed to address in order to better support Oracle. Ponadto powinna pomagać w Oracle lub firmom szybkie rozpoczęcie pracy rozwoju dostawcy Oracle dla platformy EF Core.It should also help Oracle or third parties jumpstart the development of Oracle providers for EF Core.

Firma Microsoft będzie należy wziąć pod uwagę wkładów, które zwiększają w przykładowej implementacji.We will consider contributions that improve the sample implementation. Firma Microsoft będzie również Witaj i Zachęć pracach społeczności, aby utworzyć dostawcę programu Oracle typu open source dla platformy EF Core, korzystając z przykładu jako punktu wyjścia.We would also welcome and encourage a community effort to create an open-source Oracle provider for EF Core, using the sample as a starting point.

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.