Penyedia Database

Entity Framework Core dapat mengakses berbagai database melalui pustaka plug-in yang disebut penyedia database.

Penyedia saat ini

Penting

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.

Penting

Penyedia EF Core biasanya tidak berfungsi di seluruh versi utama. Misalnya, penyedia yang dirilis untuk EF Core 7 tidak akan berfungsi dengan EF Core 8.

Paket NuGet Mesin database yang didukung Pengelola/Vendor Catatan/Persyaratan Untuk EF Core Tautan yang berguna
Microsoft.EntityFrameworkCore.SqlServer Azure SQL dan SQL Server 2012 dan seterusnya Proyek EF Core (Microsoft) 6, 7, 8 dokumen
Microsoft.EntityFrameworkCore.Sqlite SQLite 3.7 dan seterusnya Proyek EF Core (Microsoft) 6, 7, 8 dokumen
Microsoft.EntityFrameworkCore.InMemory Database dalam memori EF Core Proyek EF Core (Microsoft) Batasan 6, 7, 8 dokumen
Microsoft.EntityFrameworkCore.Cosmos API SQL Azure Cosmos DB Proyek EF Core (Microsoft) 6, 7, 8 dokumen
Npgsql.EntityFrameworkCore.PostgreSQL PostgreSQL Tim Pengembangan Npgsql 6, 7, 8 dokumen
Pomelo.EntityFrameworkCore.MySql MySQL, MariaDB Proyek Pomelo Foundation 6, 7, 8 readme
MySql.EntityFrameworkCore MySQL Proyek MySQL (Oracle) 6, 7 dokumen
Oracle.EntityFrameworkCore Oracle DB 11.2 dan seterusnya Oracle 6, 7 website
MongoDB.EntityFrameworkCore MongoDB MongoDB Saat ini dalam pratinjau 7 dokumen
Devart.Data.MySql.EFCore MySQL 5 dan seterusnya DevArt Berbayar 6, 7, 8 dokumen
Devart.Data.Oracle.EFCore Oracle DB 9.2.0.4 dan seterusnya DevArt Berbayar 6, 7, 8 dokumen
Devart.Data.PostgreSql.EFCore PostgreSQL 8.0 dan seterusnya DevArt Berbayar 6, 7, 8 dokumen
Devart.Data.SQLite.EFCore SQLite 3 dan seterusnya DevArt Berbayar 6, 7, 8 dokumen
Devart.Data.DB2.EFCore DB2 DevArt Berbayar 6, 7, 8 dokumen
Devart.Data.Bigcommerce.EFCore BigCommerce DevArt Berbayar 6, 7, 8 dokumen
Devart.Data.Dynamics.EFCore Microsoft Dynamics 365 DevArt Berbayar 6, 7, 8 dokumen
Devart.Data.FreshBooks.EFCore FreshBooks DevArt Berbayar 6, 7, 8 dokumen
Devart.Data.Magento.EFCore Magento DevArt Berbayar 6, 7, 8 dokumen
Devart.Data.MailChimp.EFCore Mailchimp DevArt Berbayar 6, 7, 8 dokumen
Devart.Data.QuickBooks.EFCore QuickBooks DevArt Berbayar 6, 7, 8 dokumen
Devart.Data.Salesforce.EFCore Salesforce DevArt Berbayar 6, 7, 8 dokumen
Devart.Data.ExactTarget.EFCore Salesforce MC (ExactTarget) DevArt Berbayar 6, 7, 8 dokumen
Devart.Data.Sugar.EFCore Sugarcrm DevArt Berbayar 6, 7, 8 dokumen
Devart.Data.Zoho.EFCore Zoho CRM DevArt Berbayar 6, 7, 8 dokumen
MASES. EntityFrameworkCore.KNet Apache Kafka Grup MASES Percobaan, Langganan 6, 7, 8 dokumen
Interbase Interbase Interbase 6 dokumen
FirebirdSql.EntityFrameworkCore.Firebird Firebird 3.0 dan seterusnya Jiří Činčura 7 dokumen
IBM.EntityFrameworkCore Db2, Informix IBM Paid, Windows 6 memulai
IBM.EntityFrameworkCore-lnx Db2, Informix IBM Paid, Linux 6 memulai
IBM.EntityFrameworkCore-osx Db2, Informix IBM Paid, macOS 6 memulai
EntityFrameworkCore.Jet File Microsoft Access CirrusRedOrg Windows 6, 7, 8 (Pratinjau) readme
Google.Cloud.EntityFrameworkCore.Spanner Google Cloud Spanner Ekosistem Cloud Spanner Saat ini dalam pratinjau 6 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 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

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

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.

Penting

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.