Fournisseurs de bases de données

Entity Framework Core peut accéder à différentes bases de données par le biais de bibliothèques plug-in appelées fournisseurs de base de données.

Fournisseurs actuels

Important

Les fournisseurs EF Core sont créés à partir de différentes sources. Les fournisseurs ne sont pas tous gérés dans le cadre du projet Microsoft Entity Framework Core. Quand vous envisagez un fournisseur, veillez à évaluer la qualité, la gestion des licences, la prise en charge, etc., pour vérifier qu’il répond à vos besoins. Veillez également à passer en revue la documentation de chaque fournisseur pour obtenir des informations détaillées sur la compatibilité des versions.

Important

En règle générale, les fournisseurs EF Core ne fonctionnent pas avec les versions principales. Par exemple, un fournisseur publié pour EF Core 7 ne fonctionne pas avec EF Core 8.

Package NuGet Moteurs de base de données pris en charge Chargé de maintenance / fournisseur Remarques / exigences Pour EF Core Liens utiles
Microsoft.EntityFrameworkCore.SqlServer Azure SQL et SQL Server 2012 et versions ultérieures Projet EF Core (Microsoft) 6, 7, 8 docs
Microsoft.EntityFrameworkCore.Sqlite SQLite 3.7 et ultérieur Projet EF Core (Microsoft) 6, 7, 8 docs
Microsoft.EntityFrameworkCore.InMemory Fournisseur en mémoire EF Core Projet EF Core (Microsoft) Limitations 6, 7, 8 docs
Microsoft.EntityFrameworkCore.Cosmos API SQL d'Azure Cosmos DB Projet EF Core (Microsoft) 6, 7, 8 docs
Npgsql.EntityFrameworkCore.PostgreSQL PostgreSQL Équipe de développement Npgsql 6, 7, 8 docs
Pomelo.EntityFrameworkCore.MySql MySQL, MariaDB Projet Pomelo Foundation 6, 7, 8 readme
MySql.EntityFrameworkCore MySQL Projet MySQL (Oracle) 6, 7 docs
Oracle.EntityFrameworkCore Oracle DB 11.2 et versions ultérieures Oracle 6, 7 website
MongoDB.EntityFrameworkCore MongoDB MongoDB 8 docs
Devart.Data.MySql.EFCore MySQL 5 et ultérieur DevArt Réglé(e) 6, 7, 8 docs
Devart.Data.Oracle.EFCore Oracle DB 9.2.0.4 et versions ultérieures DevArt Réglé(e) 6, 7, 8 docs
Devart.Data.PostgreSql.EFCore PostgreSQL 8.0 et ultérieur DevArt Réglé(e) 6, 7, 8 docs
Devart.Data.SQLite.EFCore SQLite 3 et ultérieur DevArt Réglé(e) 6, 7, 8 docs
Devart.Data.DB2.EFCore DB2 DevArt Réglé(e) 6, 7, 8 docs
Devart.Data.Bigcommerce.EFCore BigCommerce DevArt Réglé(e) 6, 7, 8 docs
Devart.Data.Dynamics.EFCore Microsoft Dynamics 365 DevArt Réglé(e) 6, 7, 8 docs
Devart.Data.FreshBooks.EFCore FreshBooks DevArt Réglé(e) 6, 7, 8 docs
Devart.Data.Magento.EFCore Magento DevArt Réglé(e) 6, 7, 8 docs
Devart.Data.MailChimp.EFCore MailChimp DevArt Réglé(e) 6, 7, 8 docs
Devart.Data.QuickBooks.EFCore QuickBooks DevArt Réglé(e) 6, 7, 8 docs
Devart.Data.Salesforce.EFCore Salesforce DevArt Réglé(e) 6, 7, 8 docs
Devart.Data.ExactTarget.EFCore Salesforce MC (ExactTarget) DevArt Réglé(e) 6, 7, 8 docs
Devart.Data.Sugar.EFCore SugarCRM DevArt Réglé(e) 6, 7, 8 docs
Devart.Data.Zoho.EFCore Zoho CRM DevArt Réglé(e) 6, 7, 8 docs
MASES.EntityFrameworkCore.KNet Apache Kafka MASES Group Essai, Souscription 6, 7, 8 docs
InterBase InterBase InterBase 6 docs
FirebirdSql.EntityFrameworkCore.Firebird Firebird 3.0 et versions ultérieures Jiří Činčura 8 docs
IBM.EntityFrameworkCore Db2, Informix IBM Payant, Windows 6 prise en main
IBM.EntityFrameworkCore-lnx Db2, Informix IBM Payant, Linux 6 prise en main
IBM.EntityFrameworkCore-osx Db2, Informix IBM Payant, macOS 6 prise en main
EntityFrameworkCore.Jet Fichiers Microsoft Access CirrusRedOrg Windows 6, 7, 8 (préversion) readme
Google.Cloud.EntityFrameworkCore.Spanner Google Cloud Spanner Écosystème Cloud Spanner Actuellement en préversion 6 didacticiel
Teradata.EntityFrameworkCore Teradata Database 16.10 et versions ultérieures Teradata 3 website
FileContextCore Stocke les données dans des fichiers Morris Janatzek À des fins de développement 3 readme
FileBaseContext Stocke les tables dans des fichiers k.D.g À des fins de développement 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

Ajout d’un fournisseur de base de données à votre application

La plupart des fournisseurs de base de données pour EF Core sont distribués sous la forme de packages NuGet et peuvent être installés comme suit :

dotnet add package provider_package_name

Une fois les packages installés, configurez le fournisseur dans votre DbContext : soit dans la méthode OnConfiguring, soit dans la méthode AddDbContext si vous utilisez un conteneur d’injection de dépendance. Par exemple, la ligne suivante configure le fournisseur SQL Server avec la chaîne de connexion passée :

optionsBuilder.UseSqlServer(
    @"Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;");

Les fournisseurs de base de données peuvent étendre Core EF pour activer des fonctionnalités propres à des bases de données spécifiques. Certains concepts, communs à la plupart des bases de données, sont inclus dans les principaux composants d’EF Core. Ces concepts comprennent l’expression des requêtes dans LINQ, les transactions et le suivi des changements apportés aux objets une fois qu’ils sont chargés à partir de la base de données. Certains concepts sont propres à un fournisseur. Par exemple, le fournisseur SQL Server vous permet de configurer des tables à mémoire optimisée (fonctionnalité spécifique à SQL Server). D’autres concepts sont propres à une classe de fournisseurs. Par exemple, les fournisseurs EF Core pour les bases de données relationnelles reposent sur la bibliothèque Microsoft.EntityFrameworkCore.Relational commune, qui fournit des API pour configurer les mappages de tables et de colonnes, les contraintes de clé étrangère, etc. Les fournisseurs sont généralement distribués sous la forme de packages NuGet.

Important

Quand une nouvelle version corrective d’EF Core est publiée, des mises à jour au package Microsoft.EntityFrameworkCore.Relational sont souvent incluses. Quand vous ajoutez un fournisseur de base de données relationnelle, ce package devient une dépendance transitive de votre application. Mais de nombreux fournisseurs sont publiés indépendamment d’EF et peuvent ne pas être mis à jour pour dépendre de la nouvelle version corrective de ce package. Pour que vous receviez tous les correctifs, nous vous recommandons d’ajouter la version corrective de Microsoft.EntityFrameworkCore.Relational comme dépendance directe de votre application.