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é
Important
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í.
Important
Poskytovatelé EF Core obvykle nefungují napříč hlavními verzemi. Například poskytovatel vydaný pro EF Core 8 nebude fungovat s EF Core 9.
| 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, SQL Server 2012 a novější, Azure Synapse Analytics |
Projekt EF Core (Microsoft) |
|
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.Sqlite |
SQLite 3.46.1 a novější |
Projekt EF Core (Microsoft) |
|
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.InMemory |
Databáze EF Core v paměti |
Projekt EF Core (Microsoft) |
Limitations |
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.Cosmos |
Rozhraní API služby Azure Cosmos DB pro SQL |
Projekt EF Core (Microsoft) |
|
8, 9, 10 |
docs |
|
Npgsql.EntityFrameworkCore.PostgreSQL |
PostgreSQL |
Vývojový tým Npgsql |
|
8, 9 |
docs |
|
Pomelo.EntityFrameworkCore.MySql |
MySQL, MariaDB |
Projekt Pomelo Foundation |
|
8, 9 |
readme |
|
MySql.EntityFrameworkCore |
MySQL |
Projekt MySQL (Oracle) |
|
8, 9 |
docs |
|
Oracle.EntityFrameworkCore |
Oracle DB 19c a novější |
Oracle |
|
8, 9, 10 |
docs |
|
MongoDB.EntityFrameworkCore |
MongoDB |
MongoDB |
|
8 |
docs |
|
Couchbase.EntityFrameworkCore |
Couchbase |
Couchbase |
|
8, 9 |
docs |
|
Devart.Data.MySql.EFCore |
MySQL od verze 5 |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Oracle.EFCore |
Oracle DB od verze 9.2.0.4 |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.PostgreSql.EFCore |
PostgreSQL od verze 8.0 |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.SQLite.EFCore |
SQLite od verze 3 |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.DB2.EFCore |
DB2 |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Bigcommerce.EFCore |
BigCommerce |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Dynamics.EFCore |
Microsoft Dynamics 365 |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.FreshBooks.EFCore |
FreshBooks |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Magento.EFCore |
Magento |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.MailChimp.EFCore |
Mailchimp |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.QuickBooks.EFCore |
QuickBooks |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Salesforce.EFCore |
Salesforce |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.ExactTarget.EFCore |
Salesforce MC (ExactTarget) |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Sugar.EFCore |
SugarCRM |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Zoho.EFCore |
Zoho CRM |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.ZohoBooks.EFCore |
Zoho Knihy |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.ZohoDesk.EFCore |
Zoho Desk |
DevArt |
Paid |
8, 9 |
docs |
|
MASES.EntityFrameworkCore.KNet |
Apache Kafka |
Skupina MASES |
Zkušební verze, předplatné |
8 |
docs |
|
InterBase |
InterBase |
InterBase |
|
8 |
docs |
|
FirebirdSql.EntityFrameworkCore.Firebird |
Firebird od verze 3.0 |
Jiří Činčura |
|
8 |
docs |
|
IBM.EntityFrameworkCore |
Db2, Informix |
IBM |
Placené, Windows |
8 |
začínáme |
|
IBM.EntityFrameworkCore-lnx |
Db2, Informix |
IBM |
Placený, Linux |
8 |
začínáme |
|
IBM.EntityFrameworkCore-osx |
Db2, Informix |
IBM |
Placené, macOS |
8 |
začínáme |
|
EntityFrameworkCore.Jet |
Soubory Microsoft Access |
CirrusRedOrg |
Windows |
8, 9 |
readme |
|
Google.Cloud.EntityFrameworkCore.Spanner |
Google Cloud Spanner |
Ekosystém Cloud Spanner |
|
8 |
tutorial |
|
Teradata.EntityFrameworkCore |
Teradata Database od verze 16.10 |
Teradata |
|
3 |
website |
|
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 |
8, 9, 10 |
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 |
|
EFCore.Snowflake |
Snowflake |
Krzysztof Sielaff |
|
8 |
readme |
|
EFCore.Kusto |
Azure Data Explorer (Kusto) |
Anas Ismail Khan |
|
8 |
readme |
|
EntityFrameworkCore.Ydb |
YDB |
Tým YDB |
|
9, 10 |
website |
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
install-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.
Important
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.