Poskytovatelé databází

Entity Framework Core má přístup k mnoha různým databázím prostřednictvím knihoven modulů plug-in, které se nazývají zprostředkovatelé databází.

Aktuální zprostředkovatelé

Důležité

Zprostředkovatelé EF Core jsou vytvářeni z různých zdrojů. Ne všichni poskytovatelé jsou udržováni jako součást projektu Microsoft Entity Framework Core. Při zvažování zprostředkovatele nezapomeňte posoudit kvalitu, licencování, podporu atd., abyste se ujistili, že splňuje vaše požadavky. Zjistěte si také z dokumentace ke každému zprostředkovateli podrobné informace o kompatibilitě verzí.

Důležité

Poskytovatelé EF Core obvykle nefungují napříč hlavními verzemi. Například poskytovatel vydaný pro EF Core 7 nebude s EF Core 8 fungovat.

Balíček NuGet Podporované databázové stroje Správce/dodavatel Poznámky/požadavky Pro EF Core Užitečné odkazy
Microsoft.EntityFrameworkCore.SqlServer Azure SQL a SQL Server 2012 dále Projekt EF Core (Microsoft) 6, 7, 8 dokumentace
Microsoft.EntityFrameworkCore.Sqlite SQLite od verze 3.7 Projekt EF Core (Microsoft) 6, 7, 8 dokumentace
Microsoft.EntityFrameworkCore.InMemory Databáze EF Core v paměti Projekt EF Core (Microsoft) Omezení 6, 7, 8 dokumentace
Microsoft.EntityFrameworkCore.Cosmos Rozhraní API služby Azure Cosmos DB pro SQL Projekt EF Core (Microsoft) 6, 7, 8 dokumentace
Npgsql.EntityFrameworkCore.PostgreSQL PostgreSQL Vývojový tým Npgsql 6, 7, 8 dokumentace
Pomelo.EntityFrameworkCore.MySql MySQL, MariaDB Projekt Pomelo Foundation 6, 7, 8 readme
MySql.EntityFrameworkCore MySQL Projekt MySQL (Oracle) 6, 7 dokumentace
Oracle.EntityFrameworkCore Oracle DB od verze 11.2 Oracle 6, 7 web
MongoDB.EntityFrameworkCore MongoDB MongoDB Aktuálně ve verzi Preview 7 dokumentace
Devart.Data.MySql.EFCore MySQL od verze 5 DevArt Placené 6, 7, 8 dokumentace
Devart.Data.Oracle.EFCore Oracle DB od verze 9.2.0.4 DevArt Placené 6, 7, 8 dokumentace
Devart.Data.PostgreSql.EFCore PostgreSQL od verze 8.0 DevArt Placené 6, 7, 8 dokumentace
Devart.Data.SQLite.EFCore SQLite od verze 3 DevArt Placené 6, 7, 8 dokumentace
Devart.Data.DB2.EFCore DB2 DevArt Placené 6, 7, 8 dokumentace
Devart.Data.Bigcommerce.EFCore BigCommerce DevArt Placené 6, 7, 8 dokumentace
Devart.Data.Dynamics.EFCore Microsoft Dynamics 365 DevArt Placené 6, 7, 8 dokumentace
Devart.Data.FreshBooks.EFCore FreshBooks DevArt Placené 6, 7, 8 dokumentace
Devart.Data.Magento.EFCore Magento DevArt Placené 6, 7, 8 dokumentace
Devart.Data.MailChimp.EFCore Mailchimp DevArt Placené 6, 7, 8 dokumentace
Devart.Data.QuickBooks.EFCore QuickBooks DevArt Placené 6, 7, 8 dokumentace
Devart.Data.Salesforce.EFCore Salesforce DevArt Placené 6, 7, 8 dokumentace
Devart.Data.ExactTarget.EFCore Salesforce MC (ExactTarget) DevArt Placené 6, 7, 8 dokumentace
Devart.Data.Sugar.EFCore SugarCRM DevArt Placené 6, 7, 8 dokumentace
Devart.Data.Zoho.EFCore Zoho CRM DevArt Placené 6, 7, 8 dokumentace
MASES. EntityFrameworkCore.KNet Apache Kafka Skupina MASES Zkušební verze, předplatné 6, 7, 8 dokumentace
Interbase Interbase Interbase 6 dokumentace
FirebirdSql.EntityFrameworkCore.Firebird Firebird od verze 3.0 Jiří Činčura 7 dokumentace
IBM.EntityFrameworkCore Db2, Informix IBM Placené, Windows 6 začínáme
IBM.EntityFrameworkCore-lnx Db2, Informix IBM Placené, Linux 6 začínáme
IBM.EntityFrameworkCore-osx Db2, Informix IBM Placené, macOS 6 začínáme
EntityFrameworkCore.Jet Soubory Microsoft Access CirrusRedOrg Windows 6, 7, 8 (Preview) readme
Google.Cloud.EntityFrameworkCore.Spanner Google Cloud Spanner Ekosystém Cloud Spanner Aktuálně ve verzi Preview 6 kurz
Teradata.EntityFrameworkCore Teradata Database od verze 16.10 Teradata 3 web
FileContextCore Ukládá data do souborů Morris Janatzek Pro účely vývoje 3 readme
FileBaseContext Ukládání tabulek do souborů k.D.g Pro účely vývoje 7, 8 readme
EntityFrameworkCore.SqlServerCompact35 SQL Server Compact 3.5 Erik Ejlskov Jensen .NET Framework 2 wiki
EntityFrameworkCore.SqlServerCompact40 SQL Server Compact 4,0 Erik Ejlskov Jensen .NET Framework 2 wiki
EntityFrameworkCore.OpenEdge Progress OpenEdge Alex Wiese 2 readme

Přidání zprostředkovatele databáze do aplikace

Většina zprostředkovatelů databází pro EF Core se distribuuje formou balíčků NuGet a lze je nainstalovat následujícím způsobem:

dotnet add package provider_package_name

Po instalaci nakonfigurujete zprostředkovatele ve své instanci DbContext, a to buď v metodě OnConfiguring, nebo v metodě AddDbContext, pokud používáte kontejner injektáže závislostí. Následující řádek například konfiguruje zprostředkovatele SQL Serveru s předaným připojovacím řetězcem:

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

Zprostředkovatelé databází mohou rozšířit funkčnost EF Core tak, aby umožňovala funkce jedinečné pro konkrétní databáze. Některé koncepty jsou společné pro většinu databází a jsou obsaženy v základních komponentách EF Core. Mezi tyto koncepty patří například dotazování v LINQ, transakce a sledování změn objektů po jejich načtení z databáze. Některé koncepty jsou specifické pro konkrétního zprostředkovatele. Zprostředkovatel SQL Serveru například umožňuje konfigurovat paměťově optimalizované tabulky (funkce specifická pro SQL Server). Jiné koncepty jsou specifické pro určitou třídu zprostředkovatelů. Například zprostředkovatelé EF Core pro relační databáze staví na společné knihovně Microsoft.EntityFrameworkCore.Relational, která poskytuje rozhraní API pro konfiguraci mapování tabulek a sloupců, omezení cizích klíčů atd. Zprostředkovatelé jsou obvykle distribuováni formou balíčků NuGet.

Důležité

Když je vydána nová opravná verze EF Core, často obsahuje aktualizace balíčku Microsoft.EntityFrameworkCore.Relational. Když přidáte zprostředkovatele relační databáze, stane se tento balíček přechodnou závislostí vaší aplikace. Řada zprostředkovatelů je však vydávána nezávisle na EF Core a nemusí být aktualizována tak, aby závisela na novější opravné verzi tohoto balíčku. Abyste měli jistotu, že získáte všechny opravy chyb, doporučujeme přidat opravnou verzi Microsoft.EntityFrameworkCore.Relational jako přímou závislost vaší aplikace.