Poskytovatelé databázíDatabase Providers

Entity Framework Core můžete přístup k mnoha různým databázím pomocí modulu plug-in knihoven, které se nazývají 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 Core poskytovatelé jsou vytvořené pomocí široké škály zdrojů.EF Core providers are built by a variety of sources. Ne všichni poskytovatelé se zachovají v rámci Entity Framework Core projektu.Not all providers are maintained as part of the Entity Framework Core Project. Při zvažování zprostředkovatele, nezapomeňte vyhodnotit kvality, licencování, podpora, atd. a ujistěte se, že splňují vaše požadavky.When considering a provider, be sure to evaluate quality, licensing, support, etc. to ensure they meet your requirements. Ujistěte se také, abyste že si přečetli dokumentaci každého poskytovatele podrobné informace o verzi kompatibility.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 / dodavateleMaintainer / Vendor Poznámky a požadavkyNotes / Requirements Užitečné odkazyUseful links
Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.SqlServer SQL Server 2008 a novějšíSQL Server 2008 onwards EF Core projektu (Microsoft)EF Core Project (Microsoft) Dokumentacedocs
Microsoft.EntityFrameworkCore.SqliteMicrosoft.EntityFrameworkCore.Sqlite 3.7 SQLite a vyššíSQLite 3.7 onwards EF Core projektu (Microsoft)EF Core Project (Microsoft) Dokumentacedocs
Microsoft.EntityFrameworkCore.InMemoryMicrosoft.EntityFrameworkCore.InMemory Databáze v paměti EF CoreEF Core in-memory database EF Core projektu (Microsoft)EF Core Project (Microsoft) Pouze pro testováníFor testing only Dokumentacedocs
Npgsql.EntityFrameworkCore.PostgreSQLNpgsql.EntityFrameworkCore.PostgreSQL PostgreSQLPostgreSQL Vývojový tým NpgsqlNpgsql 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ž EF Core 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 Projekt MySQL (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 A vyšší EF Core 2.0EF Core 2.0 onwards Dokumentacedocs
EntityFrameworkCore.FirebirdSqlEntityFrameworkCore.FirebirdSql Firebird 2.5 a 3.xFirebird 2.5 and 3.x Rafael AlmeidaRafael Almeida A vyšší EF Core 2.0EF Core 2.0 onwards wikiwiki
IBM.EntityFrameworkCoreIBM.EntityFrameworkCore Db2, InformixDb2, Informix IBMIBM Verze WindowsWindows version blogblog
IBM.EntityFrameworkCore-lnxIBM.EntityFrameworkCore-lnx Db2, InformixDb2, Informix IBMIBM Verze LinuxuLinux version blogblog
IBM.EntityFrameworkCore-osxIBM.EntityFrameworkCore-osx Db2, InformixDb2, Informix IBMIBM verze 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 EF Core 2.0, rozhraní .NET FrameworkEF Core 2.0, .NET Framework Soubor Readmereadme

Další zprostředkovateléFuture Providers

Cosmos DBCosmos DB

Jsme se vývojem poskytovatele EF Core pro rozhraní DocumentDB API ve službě Cosmos DB.We have been developing an EF Core provider for the DocumentDB API in Cosmos DB. Bude jím první poskytovatel kompletní dokumentově orientované databáze, kterou jsme vytvořili, a poznatky z tohoto cvičení se chystáte informovat 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. Aktuální plán, je publikovat předběžnou verzi zprostředkovatele v 2.1 časový rámec.The current plan is to publish an early preview of the provider in the 2.1 timeframe.

OracleOracle

Tým Oracle .NET oznámil, že jsou plánování vydat vlastní zprostředkovatele pro EF Core 2.0 přibližně ve třetím čtvrtletí roku 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. Zobrazit 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. Sdělte jakékoliv otázky 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 vytvořil tým EF EF Core zprostředkovateli ukázek pro databáze Oracle.In the meanwhile, the EF team has produced a sample EF Core provider for Oracle databases. Účelem projektu není pro vytvoření poskytovatele EF Core vlastnictví společnosti Microsoft, ale nám identifikovat mezery v EF Core relační a základní funkce, které potřebujeme pro řešení pro zajištění lepší podpory pro Oracle a rychle zprovozněte vývoj dalších Oracle zprostředkovatelé pro jádro EF Core Oracle nebo třetími stranami.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.

Posoudíme příspěvky, které zlepšují ukázková implementace.We will consider contributions that improve the sample implementation. Také by Vítáme a podporu komunity snahy o vytvoření poskytovatele open-source systému Oracle pro jádro EF Core pomocí ukázky 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 poskytovatelů databázi pro EF Core se distribuují jako balíčky NuGet.Most database providers for EF Core are distributed as NuGet packages. To znamená, že můžete nainstalovat s použitím 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, které budete konfigurovat poskytovatele v vaše DbContext, buď v OnConfiguring metoda nebo v AddDbContext metody, 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říklad následující řádek nakonfiguruje zprostředkovatele SQL Server předaný připojovacím řetězcem: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;");

Poskytovatelé databází můžete rozšířit EF Core povolit funkce, které jsou jedinečné pro konkrétní databáze.Database providers can extend EF Core to enable functionality unique to specific databases. Některé koncepty jsou společné pro většinu databází a jsou zahrnuty v primární součásti EF Core.Some concepts are common to most databases, and are included in the primary EF Core components. Tyto koncepty zahrnují vyjádření dotazy v LINQ, transakce a sledování změn na 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é koncepty 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ých tabulek (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 sestavit EF Core zprostředkovatelé pro relační databáze na společné Microsoft.EntityFrameworkCore.Relational knihovny, která poskytuje rozhraní API pro konfiguraci mapování tabulky a sloupce, omezení cizího klíče, atd. Poskytovatelé se obvykle distribuují 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 opravy EF Core, č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. Při přidání poskytovatele relační databáze, bude tento balíček tranzitivní 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 Core a nejspíš nepůjde aktualizovat na závisí na novější verzi tohoto balíčku opravy.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, se doporučuje přidat oprav verze Microsoft.EntityFrameworkCore.Relational jako přímou závislost 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.