Dostawcy baz danych

Platforma Entity Framework Core może uzyskiwać dostęp do wielu różnych baz danych za pośrednictwem bibliotek wtyczek nazywanych dostawcami baz danych.

Aktualni dostawcy

Ważne

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.

Ważne

Dostawcy platformy EF Core zwykle nie działają w różnych wersjach głównych. Na przykład dostawca wydany dla platformy EF Core 7 nie będzie działać z programem EF Core 8.

Pakiet NuGet Obsługiwane aparaty baz danych Element utrzymujący / dostawca Uwagi/wymagania Dla programu EF Core Przydatne łącza
Microsoft.EntityFrameworkCore.SqlServer Nowsze usługi Azure SQL i SQL Server 2012 EF Core Project (Microsoft) 6, 7, 8 docs
Microsoft.EntityFrameworkCore.Sqlite SQLite 3.7 i nowsze wersje EF Core Project (Microsoft) 6, 7, 8 docs
Microsoft.EntityFrameworkCore.InMemory Baza danych EF Core w pamięci EF Core Project (Microsoft) Ograniczenia 6, 7, 8 docs
Microsoft.EntityFrameworkCore.Cosmos Interfejs API SQL usługi Azure Cosmos DB EF Core Project (Microsoft) 6, 7, 8 docs
Npgsql.EntityFrameworkCore.PostgreSQL PostgreSQL Zespół deweloperów npgsql 6, 7, 8 docs
Pomelo.EntityFrameworkCore.MySql MySQL, MariaDB Projekt Pomelo Foundation 6, 7, 8 readme
MySql.EntityFrameworkCore MySQL Projekt MySQL (Oracle) 6, 7 docs
Oracle.EntityFrameworkCore Oracle DB 11.2 i nowsze wersje Oracle 6, 7 Witryna internetowa
MongoDB.EntityFrameworkCore MongoDB MongoDB Obecnie w wersji zapoznawczej 7 docs
Devart.Data.MySql.EFCore MySQL 5 i nowsze wersje DevArt Płatna 6, 7, 8 docs
Devart.Data.Oracle.EFCore Oracle DB 9.2.0.4 i nowsze wersje DevArt Płatna 6, 7, 8 docs
Devart.Data.PostgreSql.EFCore PostgreSQL 8.0 i nowsze wersje DevArt Płatna 6, 7, 8 docs
Devart.Data.SQLite.EFCore SQLite 3 i nowsze wersje DevArt Płatna 6, 7, 8 docs
Devart.Data.DB2.EFCore DB2 DevArt Płatna 6, 7, 8 docs
Devart.Data.Bigcommerce.EFCore BigCommerce DevArt Płatna 6, 7, 8 docs
Devart.Data.Dynamics.EFCore Microsoft Dynamics 365 DevArt Płatna 6, 7, 8 docs
Devart.Data.FreshBooks.EFCore FreshBooks DevArt Płatna 6, 7, 8 docs
Devart.Data.Office.EFCore Magento DevArt Płatna 6, 7, 8 docs
Devart.Data.MailChimp.EFCore Mailchimp DevArt Płatna 6, 7, 8 docs
Devart.Data.QuickBooks.EFCore QuickBooks DevArt Płatna 6, 7, 8 docs
Devart.Data.Salesforce.EFCore Salesforce DevArt Płatna 6, 7, 8 docs
Devart.Data.ExactTarget.EFCore Salesforce MC (ExactTarget) DevArt Płatna 6, 7, 8 docs
Devart.Data.Sugar.EFCore SugarCRM DevArt Płatna 6, 7, 8 docs
Devart.Data.Zoho.EFCore Zoho CRM DevArt Płatna 6, 7, 8 docs
MASES. EntityFrameworkCore.KNet Apache Kafka Grupa MASES Wersja próbna, subskrypcja 6, 7, 8 docs
Interbase Interbase Interbase 6 docs
FirebirdSql.EntityFrameworkCore.Firebird Firebird 3.0 i nowsze wersje Jiří Činčura 7 docs
IBM.EntityFrameworkCore Db2, Informix IBM Płatne, Windows 6 wprowadzenie
IBM.EntityFrameworkCore-lnx Db2, Informix IBM Płatne, Linux 6 wprowadzenie
IBM.EntityFrameworkCore-osx Db2, Informix IBM Płatne, macOS 6 wprowadzenie
EntityFrameworkCore.Jet Pliki programu Microsoft Access CirrusRedOrg Windows 6, 7, 8 (wersja zapoznawcza) readme
Google.Cloud.EntityFrameworkCore.Spanner Google Cloud Spanner Ekosystem rozwiązania Cloud Spanner Obecnie w wersji zapoznawczej 6 samouczek
Teradata.EntityFrameworkCore Teradata Database 16.10 i nowsze wersje Teradata 3 Witryna internetowa
FileContextCore Przechowuje dane w plikach Morris Janatzek Do celów programistycznych 3 readme
PlikBaseContext Przechowywanie tabel w plikach k.D.g Do celów programistycznych 7, 8 readme
EntityFrameworkCore.SqlServerCompact35 SQL Server Compact 3.5 Erik Ejlskov Jensen .NET Framework 2 witryna wiki
EntityFrameworkCore.SqlServerCompact40 SQL Server Compact 4.0 Erik Ejlskov Jensen .NET Framework 2 witryna wiki
EntityFrameworkCore.OpenEdge Postęp OpenEdge Alex Wiese 2 readme

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

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.

Ważne

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.