Platforma Entity Framework Core może uzyskiwać dostęp do wielu różnych baz danych za pośrednictwem bibliotek wtyczek nazywanych dostawcami baz danych.
Bieżąci dostawcy
Important
Dostawcy platformy EF Core są tworzeni przez różne źródła. Nie wszyscy dostawcy są utrzymywani w ramach projektu Microsoft Entity Framework Core. Rozważając wybór dostawcy, oceń jego jakość, licencjonowanie, pomoc techniczną itp. i upewnij się, że spełnia on Twoje wymagania. Pamiętaj również o zapoznaniu się z dokumentacją każdego dostawcy, aby uzyskać szczegółowe informacje o zgodności wersji.
Important
Dostawcy platformy EF Core zwykle nie działają w różnych wersjach głównych. Na przykład dostawca wydany dla platformy EF Core 8 nie będzie działać z programem EF Core 9.
| Pakiet NuGet |
Obsługiwane aparaty baz danych |
Element utrzymujący / dostawca |
Uwagi/wymagania |
Dla programu EF Core |
Przydatne linki |
|
Microsoft.EntityFrameworkCore.SqlServer |
Azure SQL, od SQL Server 2012 w górę, Azure Synapse Analytics |
Projekt EF Core (Microsoft) |
|
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.Sqlite |
SQLite 3.46.1 i wzwyż |
Projekt EF Core (Microsoft) |
|
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.InMemory |
Baza danych EF Core w pamięci |
Projekt EF Core (Microsoft) |
Limitations |
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.Cosmos |
Interfejs API SQL usługi Azure Cosmos DB |
Projekt EF Core (Microsoft) |
|
8, 9, 10 |
docs |
|
Npgsql.EntityFrameworkCore.PostgreSQL |
PostgreSQL |
Zespół deweloperów 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 od wersji 19c |
Oracle |
|
8, 9, 10 |
docs |
|
MongoDB.EntityFrameworkCore |
MongoDB |
MongoDB |
|
8 |
docs |
|
Couchbase.EntityFrameworkCore |
Couchbase |
Couchbase |
|
8, 9 |
docs |
|
Devart.Data.MySql.EFCore |
MySQL 5 i nowsze wersje |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Oracle.EFCore |
Oracle DB 9.2.0.4 i nowsze wersje |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.PostgreSql.EFCore |
PostgreSQL 8.0 i nowsze wersje |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.SQLite.EFCore |
SQLite 3 i nowsze wersje |
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 |
Książki Zoho |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.ZohoDesk.EFCore |
Zoho Desk |
DevArt |
Paid |
8, 9 |
docs |
|
MASES.EntityFrameworkCore.KNet |
Apache Kafka |
Grupa MASES |
Wersja próbna, subskrypcja |
8 |
docs |
|
InterBase |
InterBase |
InterBase |
|
8 |
docs |
|
FirebirdSql.EntityFrameworkCore.Firebird |
Firebird 3.0 i nowsze wersje |
Jiří Činčura |
|
8 |
docs |
|
IBM.EntityFrameworkCore |
Db2, Informix |
IBM |
Płatne, Windows |
8 |
Wprowadzenie |
|
IBM.EntityFrameworkCore-lnx |
Db2, Informix |
IBM |
Płatne, Linux |
8 |
Wprowadzenie |
|
IBM.EntityFrameworkCore-osx |
Db2, Informix |
IBM |
Płatne, macOS |
8 |
Wprowadzenie |
|
EntityFrameworkCore.Jet |
Pliki programu Microsoft Access |
CirrusRedOrg |
Windows |
8, 9 |
readme |
|
Google.Cloud.EntityFrameworkCore.Spanner |
Google Cloud Spanner |
Ekosystem rozwiązania Cloud Spanner |
|
8 |
tutorial |
|
Teradata.EntityFrameworkCore |
Teradata Database 16.10 i nowsze wersje |
Teradata |
|
3 |
website |
|
FileContextCore |
Przechowuje dane w plikach |
Morris Janatzek |
Do celów programistycznych |
3 |
readme |
|
FileBaseContext |
Przechowywanie tabel w plikach |
k.D.g |
Do celów programistycznych |
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 |
Postęp 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 |
Zespół YDB |
|
9, 10 |
website |
Dodawanie dostawcy bazy danych do aplikacji
Większość dostawców baz danych dla platformy EF Core jest dystrybuowana jako pakiety NuGet i można je zainstalować w następujący sposób:
dotnet add package provider_package_name
install-package provider_package_name
Po zainstalowaniu dostawcy należy go skonfigurować w klasie DbContext, w metodzie OnConfiguring albo AddDbContext, jeśli używasz kontenera wstrzykiwania zależności.
Na przykład następujący wiersz konfiguruje dostawcę programu SQL Server z przekazanymi parametrami połączenia:
optionsBuilder.UseSqlServer(
@"Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;");
Dostawcy baz danych mogą rozszerzyć platformę EF Core, aby zapewnić funkcje unikatowe dla określonych baz danych. Niektóre pojęcia są wspólne dla większości baz danych i są uwzględniane w podstawowych składnikach platformy EF Core. Te pojęcia obejmują wyrażanie zapytań w składni LINQ, transakcje i śledzenie zmian w obiektach po załadowaniu ich z bazy danych.
Niektóre pojęcia są specyficzne dla określonego dostawcy. Na przykład dostawca programu SQL Server umożliwia skonfigurowanie tabel zoptymalizowanych pod kątem pamięci (funkcja specyficzna dla programu SQL Server). Inne pojęcia są specyficzne dla klasy dostawców.
Na przykład dostawcy platformy EF Core dla relacyjnych baz danych opierają się na wspólnej bibliotece Microsoft.EntityFrameworkCore.Relational, która udostępnia interfejsy API służące do konfigurowania mapowań tabel i kolumn, ograniczeń klucza obcego itp. Dostawcy są zwykle dystrybuowani jako pakiety NuGet.
Important
Nowe wersje poprawek platformy EF Core często zawierają aktualizacje pakietu Microsoft.EntityFrameworkCore.Relational.
Po dodaniu dostawcy relacyjnej bazy danych ten pakiet staje się zależnością przechodnią aplikacji.
Jednak wielu dostawców jest udostępnianych niezależnie od platformy EF Core i może nie zostać zaktualizowanych tak, aby zależeć od nowszej wersji poprawki tego pakietu.
Aby uzyskać wszystkie poprawki błędów, zaleca się dodanie wersji poprawki pakietu Microsoft.EntityFrameworkCore.Relational jako bezpośredniej zależności aplikacji.