Entity Framework Core dapat mengakses berbagai database melalui pustaka plug-in yang disebut penyedia database.
Penyedia saat ini
Important
Penyedia EF Core dibangun oleh berbagai sumber. Tidak semua penyedia dipertahankan sebagai bagian dari Proyek Inti Kerangka Kerja Entitas Microsoft. Saat mempertimbangkan penyedia, evaluasi kualitasnya, lisensinya, dukungannya, dll. untuk memastikan kebutuhan Anda terpenuhi. Pastikan Anda juga meninjau dokumentasi setiap penyedia untuk mengetahui informasi kompatibilitas versi secara mendetail.
Important
Penyedia EF Core biasanya tidak berfungsi di seluruh versi utama. Misalnya, penyedia yang dirilis untuk EF Core 8 tidak akan berfungsi dengan EF Core 9.
| Paket NuGet |
Mesin database yang didukung |
Pengelola/Vendor |
Catatan/Persyaratan |
Untuk EF Core |
Tautan yang berguna |
|
Microsoft.EntityFrameworkCore.SqlServer |
Azure SQL, SQL Server 2012 dan seterusnya, Azure Synapse Analytics |
Proyek EF Core (Microsoft) |
|
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.Sqlite |
SQLite 3.46.1 dan seterusnya |
Proyek EF Core (Microsoft) |
|
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.InMemory |
Database dalam memori EF Core |
Proyek EF Core (Microsoft) |
Limitations |
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.Cosmos |
API SQL Azure Cosmos DB |
Proyek EF Core (Microsoft) |
|
8, 9, 10 |
docs |
|
Npgsql.EntityFrameworkCore.PostgreSQL |
PostgreSQL |
Tim Pengembangan Npgsql |
|
8, 9 |
docs |
|
Pomelo.EntityFrameworkCore.MySql |
MySQL, MariaDB |
Proyek Pomelo Foundation |
|
8, 9 |
readme |
|
MySql.EntityFrameworkCore |
MySQL |
Proyek MySQL (Oracle) |
|
8, 9 |
docs |
|
Oracle.EntityFrameworkCore |
Oracle DB 19c dan seterusnya |
Oracle |
|
8, 9, 10 |
docs |
|
MongoDB.EntityFrameworkCore |
MongoDB |
MongoDB |
|
8 |
docs |
|
Couchbase.EntityFrameworkCore |
Couchbase |
Couchbase |
|
8, 9 |
docs |
|
Devart.Data.MySql.EFCore |
MySQL 5 dan seterusnya |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Oracle.EFCore |
Oracle DB 9.2.0.4 dan seterusnya |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.PostgreSql.EFCore |
PostgreSQL 8.0 dan seterusnya |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.SQLite.EFCore |
SQLite 3 dan seterusnya |
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 Books |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.ZohoDesk.EFCore |
Zoho Desk |
DevArt |
Paid |
8, 9 |
docs |
|
MASES.EntityFrameworkCore.KNet |
Apache Kafka |
Grup MASES |
Percobaan, Langganan |
8 |
docs |
|
InterBase |
InterBase |
InterBase |
|
8 |
docs |
|
FirebirdSql.EntityFrameworkCore.Firebird |
Firebird 3.0 dan seterusnya |
Jiří Činčura |
|
8 |
docs |
|
IBM.EntityFrameworkCore |
Db2, Informix |
IBM |
Berbayar, Windows |
8 |
Persiapan |
|
IBM.EntityFrameworkCore-lnx |
Db2, Informix |
IBM |
Berbayar, Linux |
8 |
Persiapan |
|
IBM.EntityFrameworkCore-osx |
Db2, Informix |
IBM |
Berbayar, macOS |
8 |
Persiapan |
|
EntityFrameworkCore.Jet |
File Microsoft Access |
CirrusRedOrg |
Windows |
8, 9 |
readme |
|
Google.Cloud.EntityFrameworkCore.Spanner |
Google Cloud Spanner |
Ekosistem Cloud Spanner |
|
8 |
tutorial |
|
Teradata.EntityFrameworkCore |
Database Teradata 16.10 dan seterusnya |
Teradata |
|
3 |
website |
|
FileContextCore |
Menyimpan data dalam file |
Morris Janatzek |
Untuk tujuan pengembangan |
3 |
readme |
|
FileBaseContext |
Menyimpan tabel dalam file |
k.D.g |
Untuk tujuan pengembangan |
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 |
Kemajuan 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 |
Tim YDB |
|
9, 10 |
website |
Menambahkan penyedia database ke aplikasi Anda
Sebagian besar penyedia database untuk EF Core didistribusikan sebagai paket NuGet, dan dapat diinstal sebagai berikut:
dotnet add package provider_package_name
install-package provider_package_name
Setelah diinstal, Anda akan mengonfigurasi penyedia di DbContext, baik dalam metode OnConfiguring atau metode AddDbContext jika Anda menggunakan kontainer injeksi dependensi.
Misalnya, baris berikut mengonfigurasi penyedia SQL Server dengan string koneksi yang diteruskan:
optionsBuilder.UseSqlServer(
@"Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;");
Penyedia database dapat memperluas EF Core untuk mengaktifkan fungsionalitas yang unik untuk database tertentu. Beberapa konsep bersifat umum untuk sebagian besar database, dan disertakan dalam komponen EF Core utama. Konsep tersebut termasuk menyatakan kueri dalam LINQ, transaksi, dan pelacakan perubahan objek setelah dimuat dari database.
Beberapa konsep spesifik untuk penyedia tertentu. Misalnya, penyedia SQL Server memungkinkan Anda mengonfigurasi tabel yang dioptimalkan memori (fitur yang spesifik untuk SQL Server). Konsep lain spesifik untuk kelas penyedia.
Misalnya, penyedia EF Core untuk database hubungan dibangun di pustaka Microsoft.EntityFrameworkCore.Relational umum, yang menyediakan API untuk mengonfigurasi pemetaan tabel dan kolom, batasan kunci asing, dll. Penyedia biasanya didistribusikan sebagai paket NuGet.
Important
Ketika versi patch baru EF Core dirilis, rilis ini sering kali mencakup pembaruan untuk paket Microsoft.EntityFrameworkCore.Relational.
Saat penyedia database hubungan ditambahkan, paket ini menjadi dependensi transitif aplikasi Anda.
Tetapi banyak penyedia dirilis secara independen dari EF Core dan mungkin tidak diperbarui untuk bergantung pada versi patch yang lebih baru dari paket tersebut.
Untuk memastikan Anda akan mendapatkan semua perbaikan bug, sebaiknya tambahkan versi patch Microsoft.EntityFrameworkCore.Relational sebagai dependensi langsung aplikasi Anda.