Zprostředkovatelé databázeDatabase Providers

Entity Framework Core můžete přístup k mnoha různým databázím pomocí modulu plug-in knihoven nazývané poskytovatelé databáze.Entity Framework Core can access many different databases through plug-in libraries called database providers.

Aktuální zprostředkovatelůCurrent providers

Důležité

EF hlavními zprostředkovateli jsou vytvořeny pomocí různých zdrojů.EF Core providers are built by a variety of sources. Ne všichni poskytovatelé se udržují v rámci Entity Framework Core projektu.Not all providers are maintained as part of the Entity Framework Core Project. Při výběru poskytovatele, ujistěte se, že jste vyhodnocení kvality, licencování, podpora, atd. Chcete-li zajistit, aby že odpovídaly vašim požadavkům.When considering a provider, be sure to evaluate quality, licensing, support, etc. to ensure they meet your requirements. Ujistěte se také že zkontrolovat každého zprostředkovatele dokumentace pro verzi podrobné informace o kompatibilitě.Also make sure you review each provider's documentation for detailed version compatibility information.

Balíček NuGetNuGet Package Podporované databázové strojeSupported database engines Funkce Maintainer nebo dodavateleMaintainer / Vendor Poznámky k nebo požadavkyNotes / Requirements Užitečné odkazyUseful links
Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.SqlServer SQL Server 2008 a vyššíSQL Server 2008 onwards EF základní projekt (Microsoft)EF Core Project (Microsoft) Dokumentacedocs
Microsoft.EntityFrameworkCore.SqliteMicrosoft.EntityFrameworkCore.Sqlite 3.7 SQLite a vyššíSQLite 3.7 onwards EF základní projekt (Microsoft)EF Core Project (Microsoft) Dokumentacedocs
Microsoft.EntityFrameworkCore.InMemoryMicrosoft.EntityFrameworkCore.InMemory Databáze v paměti jádra EFEF Core in-memory database EF základní projekt (Microsoft)EF Core Project (Microsoft) Určené jenom pro testováníFor testing only Dokumentacedocs
Npgsql.EntityFrameworkCore.PostgreSQLNpgsql.EntityFrameworkCore.PostgreSQL PostgreSQLPostgreSQL Npgsql vývojový týmNpgsql Development Team Dokumentacedocs
Pomelo.EntityFrameworkCore.MySqlPomelo.EntityFrameworkCore.MySql MySQL, MariaDBMySQL, MariaDB Pomelo Foundation projektuPomelo Foundation Project Soubor Readmereadme
Pomelo.EntityFrameworkCore.MyCatPomelo.EntityFrameworkCore.MyCat MyCAT serveruMyCAT Server Pomelo Foundation projektuPomelo Foundation Project Předběžné verze, až jádro EF 1.1Pre-release, Up to EF Core 1.1 Soubor Readmereadme
EntityFrameworkCore.SqlServerCompact40EntityFrameworkCore.SqlServerCompact40 SQL Server Compact 4,0SQL Server Compact 4.0 Erik Ejlskov LázeckýErik Ejlskov Jensen .NET Framework.NET Framework wikiwiki
EntityFrameworkCore.SqlServerCompact35EntityFrameworkCore.SqlServerCompact35 SQL Server Compact 3.5SQL Server Compact 3.5 Erik Ejlskov LázeckýErik Ejlskov Jensen .NET Framework.NET Framework wikiwiki
MySql.Data.EntityFrameworkCoreMySql.Data.EntityFrameworkCore MySQLMySQL MySQL projektu (Oracle)MySQL project (Oracle) Předběžné verzePre-release Dokumentacedocs
FirebirdSql.EntityFrameworkCore.FirebirdFirebirdSql.EntityFrameworkCore.Firebird Firebird 2.5 a 3.xFirebird 2.5 and 3.x Jiří ČinčuraJiří Činčura Základní EF 2.0 a vyšší, předběžné verzeEF Core 2.0 onwards, Pre-release Blogblog
EntityFrameworkCore.FirebirdSqlEntityFrameworkCore.FirebirdSql Firebird 2.5 a 3.xFirebird 2.5 and 3.x Rafael AlmeidaRafael Almeida A vyšší EF základní 2.0EF Core 2.0 onwards wikiwiki
IBM.EntityFrameworkCoreIBM.EntityFrameworkCore Db2, InformixDb2, Informix IBMIBM Verze systému WindowsWindows version Blogblog
IBM.EntityFrameworkCore-lnxIBM.EntityFrameworkCore-lnx Db2, InformixDb2, Informix IBMIBM Linux verzeLinux version Blogblog
IBM.EntityFrameworkCore-osxIBM.EntityFrameworkCore-osx Db2, InformixDb2, Informix IBMIBM verze systému macOSmacOS version Blogblog
Devart.Data.Oracle.EFCoreDevart.Data.Oracle.EFCore Oracle 9.2.0.4 a vyššíOracle 9.2.0.4 onwards DevArtDevArt PlacenéPaid Dokumentacedocs
Devart.Data.PostgreSql.EFCoreDevart.Data.PostgreSql.EFCore PostgreSQL 8.0 a vyššíPostgreSQL 8.0 onwards DevArtDevArt PlacenéPaid Dokumentacedocs
Devart.Data.SQLite.EFCoreDevart.Data.SQLite.EFCore SQLite 3 a vyššíSQLite 3 onwards DevArtDevArt PlacenéPaid Dokumentacedocs
Devart.Data.MySql.EFCoreDevart.Data.MySql.EFCore MySQL 5 a vyššíMySQL 5 onwards DevArtDevArt PlacenéPaid Dokumentacedocs
EntityFrameworkCore.JetEntityFrameworkCore.Jet Soubory aplikace Microsoft AccessMicrosoft Access files BubiBubi Základní EF 2.0, .NET FrameworkEF Core 2.0, .NET Framework Soubor Readmereadme

Budoucí zprostředkovatelůFuture Providers

Cosmos DBCosmos DB

Byla jsme vývoj poskytovatele EF jádra pro rozhraní API DocumentDB v Cosmos DB.We have been developing an EF Core provider for the DocumentDB API in Cosmos DB. To bude první zprostředkovatel dokončení orientované dokumentu databáze, které jsme je tvořen a learnings z tohoto cvičení se chystáte informovat o tom, vylepšení v návrhu následné verze po 2.1.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 the subsequent release after 2.1. Stávající plán je publikovat časné zprostředkovatele do 2.1 časový rámec.The current plan is to publish an early preview of the provider in the 2.1 timeframe.

OracleOracle

Týmem Oracle .NET oznámila, že jsou plánování k uvolnění první strany poskytovatele pro EF základní 2.0 přibližně v třetí čtvrtletí 2018.The Oracle .NET team has announced they are planning to release a first-party provider for EF Core 2.0 approximately in the third quarter of 2018. V tématu jejich příkaz směr pro .NET Core a Entity Framework Core Další informace.See their statement of direction for .NET Core and Entity Framework Core for more information. Prosím směrovat všechny dotazy týkající se tohoto zprostředkovatele, včetně na časové ose verze web komunity Oracle.Please direct any questions about this provider, including the release timeline, to the Oracle Community Site.

Mezitím se vytváří týmem EF zprostředkovatel EF základní ukázka pro Oracle – databáze.In the meanwhile, the EF team has produced a sample EF Core provider for Oracle databases. Účelem projektu není k vytvoření poskytovatele EF základní vlastnictví společnosti Microsoft, ale a pomoci tak identifikovat mezery v EF základní relační a základní funkce, která potřebujeme k vyřešení proto, aby lépe podporovaly Oracle a základní informace vývoj jiných Oracle zprostředkovatelé pro základní EF Oracle nebo třetí strany.The purpose of the project is not to produce an EF Core provider owned by Microsoft, but to help us identify gaps in EF Core's relational and base functionality which we need to address in order to better support Oracle, and to jumpstart the development of other Oracle providers for EF Core by either Oracle or third parties.

Jsme zvažovat příspěvky, které vylepšují Vzorová implementace.We will consider contributions that improve the sample implementation. Také jsme by Vítejte a podporovat úsilí komunity pro vytvoření poskytovatele open-source Oracle pro základní EF, pomocí ukázku jako výchozí bod.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.

Přidání poskytovatele databáze do vaší aplikaceAdding a database provider to your application

Většina zprostředkovatelů databáze pro základní EF distribuují jako balíčky NuGet.Most database providers for EF Core are distributed as NuGet packages. To znamená, že můžete nainstalovat pomocí dotnet nástroj na příkazovém řádku:This means they can be installed using the dotnet tool in the command line:

dotnet add package provider_package_name

Nebo v sadě Visual Studio pomocí konzoly Správce balíčků NuGet:Or in Visual Studio, using NuGet's Package Manager Console:

install-package provider_package_name

Po instalaci můžete nakonfigurovat poskytovatele v vaše DbContext, buď v OnConfiguring metoda nebo v AddDbContext metoda, pokud používáte kontejner vkládání závislostí.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. NapříkladE.g. následující řádek konfiguruje zprostředkovatele SQL Server s předaný připojovací řetězec:the following line configures the SQL Server provider with the passed connection string:

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

Zprostředkovatelé databáze můžete rozšířit EF jádra k povolení funkcí, které jsou jedinečné pro konkrétní databáze.Database providers can extend EF Core to enable functionality unique to specific databases. Některé pojmy jsou společné pro většinu databází a jsou součástí primární EF základních komponent.Some concepts are common to most databases, and are included in the primary EF Core components. Tyto koncepty zahrnují vyjadřující dotazy v technologii LINQ, transakce a sledování změn pro objekty, jakmile jsou načteny z databáze.Such concepts include expressing queries in LINQ, transactions, and tracking changes to objects once they are loaded from the database. Některé pojmy jsou specifické pro konkrétního poskytovatele.Some concepts are specific to a particular provider. Například zprostředkovatele SQL Server umožňuje konfigurace paměťově optimalizované tabulky (funkce specifické pro systém SQL Server).For example, the SQL Server provider allows you to configure memory-optimized tables (a feature specific to SQL Server). Další koncepty jsou specifické pro třídu zprostředkovatelů.Other concepts are specific to a class of providers. Například EF hlavními zprostředkovateli pro relační databáze sestavení na nejběžnější Microsoft.EntityFrameworkCore.Relational knihovny, která poskytuje rozhraní API pro konfiguraci mapování tabulky a sloupce, omezení cizích klíčů, atd. Poskytovatelé jsou obvykle distribuován jako balíčky 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.

Důležité

Po vydání nové verze oprava EF jádra, často obsahuje aktualizace Microsoft.EntityFrameworkCore.Relational balíčku.When a new patch version of EF Core is released, it often includes updates to the Microsoft.EntityFrameworkCore.Relational package. Když přidáte poskytovatele relační databáze, tento balíček stane přenositelné závislostí vaší aplikace.When you add a relational database provider, this package becomes a transitive dependency of your application. Ale mnoho poskytovatelů vydávají nezávisle z EF jádra a nemusí být aktualizován závislý na novější verze opravy tento balíček.But many providers are released independently from EF Core and may not be updated to depend on the newer patch version of that package. Pokud chcete mít jistotu, zobrazí se všechny opravy chyb, je vhodné přidat oprav verze Microsoft.EntityFrameworkCore.Relational jako přímý závislost vaší aplikace.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.