Fournisseurs de bases de donnéesDatabase Providers

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.Entity Framework Core can access many different databases through plug-in libraries called database providers.

Fournisseurs actuelsCurrent providers

Important

Les fournisseurs EF Core sont créés à partir de différentes sources.EF Core providers are built by a variety of sources. Les fournisseurs ne sont pas tous gérés dans le cadre du projet Entity Framework Core.Not all providers are maintained as part of the Entity Framework Core Project. 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.When considering a provider, be sure to evaluate quality, licensing, support, etc. to ensure they meet your requirements. Veillez également à passer en revue la documentation de chaque fournisseur pour obtenir des informations détaillées sur la compatibilité des versions.Also make sure you review each provider's documentation for detailed version compatibility information.

Important

Les fournisseurs EF Core fonctionnent généralement avec des versions mineures, mais pas avec des versions majeures.EF Core providers typically work across minor versions, but not across major versions. Par exemple, un fournisseur publié pour EF Core 2.1 doit fonctionner avec EF Core 2.2, mais il ne fonctionnera pas avec EF Core 3.0.For example, a provider released for EF Core 2.1 should work with EF Core 2.2, but will not work with EF Core 3.0.

Package NuGetNuGet Package Moteurs de base de données pris en chargeSupported database engines Chargé de maintenance / fournisseurMaintainer / Vendor Remarques / exigencesNotes / Requirements Créé pour la versionBuilt for version Liens utilesUseful links
Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.SqlServer SQL Server 2012 et ultérieurSQL Server 2012 onwards Projet EF Core (Microsoft)EF Core Project (Microsoft) 3.13.1 docsdocs
Microsoft.EntityFrameworkCore.SqliteMicrosoft.EntityFrameworkCore.Sqlite SQLite 3.7 et ultérieurSQLite 3.7 onwards Projet EF Core (Microsoft)EF Core Project (Microsoft) 3.13.1 docsdocs
Microsoft.EntityFrameworkCore.InMemoryMicrosoft.EntityFrameworkCore.InMemory Fournisseur en mémoire EF CoreEF Core in-memory database Projet EF Core (Microsoft)EF Core Project (Microsoft) LimitationsLimitations 3.13.1 docsdocs
Microsoft.EntityFrameworkCore.CosmosMicrosoft.EntityFrameworkCore.Cosmos API SQL Azure Cosmos DBAzure Cosmos DB SQL API Projet EF Core (Microsoft)EF Core Project (Microsoft) 3.13.1 docsdocs
Npgsql.EntityFrameworkCore.PostgreSQLNpgsql.EntityFrameworkCore.PostgreSQL PostgreSQLPostgreSQL Équipe de développement NpgsqlNpgsql Development Team 3.13.1 docsdocs
Pomelo.EntityFrameworkCore.MySqlPomelo.EntityFrameworkCore.MySql MySQL, MariaDBMySQL, MariaDB Projet Pomelo FoundationPomelo Foundation Project 3.13.1 readmereadme
MySql.Data.EntityFrameworkCoreMySql.Data.EntityFrameworkCore MySQLMySQL Projet MySQL (Oracle)MySQL project (Oracle) 3.13.1 docsdocs
Oracle.EntityFrameworkCoreOracle.EntityFrameworkCore Oracle DB 11.2 et versions ultérieuresOracle DB 11.2 onwards OracleOracle 3.13.1 site webwebsite
Devart.Data.MySql.EFCoreDevart.Data.MySql.EFCore MySQL 5 et ultérieurMySQL 5 onwards DevArtDevArt PayéPaid 3.13.1 docsdocs
Devart.Data.Oracle.EFCoreDevart.Data.Oracle.EFCore Oracle DB 9.2.0.4 et versions ultérieuresOracle DB 9.2.0.4 onwards DevArtDevArt PayéPaid 3.13.1 docsdocs
Devart.Data.PostgreSql.EFCoreDevart.Data.PostgreSql.EFCore PostgreSQL 8.0 et ultérieurPostgreSQL 8.0 onwards DevArtDevArt PayéPaid 3.13.1 docsdocs
Devart.Data.SQLite.EFCoreDevart.Data.SQLite.EFCore SQLite 3 et ultérieurSQLite 3 onwards DevArtDevArt PayéPaid 3.13.1 docsdocs
FirebirdSql.EntityFrameworkCore.FirebirdFirebirdSql.EntityFrameworkCore.Firebird Firebird 2.5 et 3.xFirebird 2.5 and 3.x Jiří ČinčuraJiří Činčura 3.13.1 docsdocs
IBM.EntityFrameworkCoreIBM.EntityFrameworkCore Db2, InformixDb2, Informix IBMIBM Payant, WindowsPaid, Windows 3.13.1 Site web du clientcustomer website
IBM.EntityFrameworkCore-lnxIBM.EntityFrameworkCore-lnx Db2, InformixDb2, Informix IBMIBM Payant, LinuxPaid, Linux 3.13.1 Site web du clientcustomer website
IBM.EntityFrameworkCore-osxIBM.EntityFrameworkCore-osx Db2, InformixDb2, Informix IBMIBM Payant, macOSPaid, macOS 3.13.1 Site web du clientcustomer website
FileContextCoreFileContextCore Stocke les données dans des fichiersStores data in files Morris JanatzekMorris Janatzek À des fins de développementFor development purposes 3.03.0 readmereadme
EntityFrameworkCore.JetEntityFrameworkCore.Jet Fichiers Microsoft AccessMicrosoft Access files BubiBubi .NET Framework.NET Framework 2.22.2 readmereadme
EntityFrameworkCore.SqlServerCompact35EntityFrameworkCore.SqlServerCompact35 SQL Server Compact 3.5SQL Server Compact 3.5 Erik Ejlskov JensenErik Ejlskov Jensen .NET Framework.NET Framework 2.22.2 wikiwiki
EntityFrameworkCore.SqlServerCompact40EntityFrameworkCore.SqlServerCompact40 SQL Server Compact 4,0SQL Server Compact 4.0 Erik Ejlskov JensenErik Ejlskov Jensen .NET Framework.NET Framework 2.22.2 wikiwiki
Teradata.EntityFrameworkCoreTeradata.EntityFrameworkCore Teradata Database 16.10 et versions ultérieuresTeradata Database 16.10 onwards TeradataTeradata 2.22.2 site webwebsite
EntityFrameworkCore.FirebirdSqlEntityFrameworkCore.FirebirdSql Firebird 2.5 et 3.xFirebird 2.5 and 3.x Rafael AlmeidaRafael Almeida 2.12.1 wikiwiki
EntityFrameworkCore.OpenEdgeEntityFrameworkCore.OpenEdge Progress OpenEdgeProgress OpenEdge Alex WieseAlex Wiese 2.12.1 readmereadme

Ajout d’un fournisseur de base de données à votre applicationAdding a database provider to your 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 :Most database providers for EF Core are distributed as NuGet packages, and can be installed as follows:

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.Once installed, you will configure the provider in your DbContext, either in the OnConfiguring method or in the AddDbContext method if you are using a dependency injection container. Par exemple, la ligne suivante configure le fournisseur SQL Server avec la chaîne de connexion passée :For example, the following line configures the SQL Server provider with the passed connection string:

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.Database providers can extend EF Core to enable functionality unique to specific databases. Certains concepts, communs à la plupart des bases de données, sont inclus dans les principaux composants d’EF Core.Some concepts are common to most databases, and are included in the primary EF Core components. 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.Such concepts include expressing queries in LINQ, transactions, and tracking changes to objects once they are loaded from the database. Certains concepts sont propres à un fournisseur.Some concepts are specific to a particular provider. Par exemple, le fournisseur SQL Server vous permet de configurer des tables à mémoire optimisée (fonctionnalité spécifique à SQL Server).For example, the SQL Server provider allows you to configure memory-optimized tables (a feature specific to SQL Server). D’autres concepts sont propres à une classe de fournisseurs.Other concepts are specific to a class of providers. 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.For example, EF Core providers for relational databases build on the common Microsoft.EntityFrameworkCore.Relational library, which provides APIs for configuring table and column mappings, foreign key constraints, etc. Providers are usually distributed as NuGet packages.

Important

Quand une nouvelle version corrective d’EF Core est publiée, des mises à jour au package Microsoft.EntityFrameworkCore.Relational sont souvent incluses.When a new patch version of EF Core is released, it often includes updates to the Microsoft.EntityFrameworkCore.Relational package. Quand vous ajoutez un fournisseur de base de données relationnelle, ce package devient une dépendance transitive de votre application.When you add a relational database provider, this package becomes a transitive dependency of your 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.But many providers are released independently from EF Core and may not be updated to depend on the newer patch version of that 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.In order to make sure you will get all bug fixes, it is recommended that you add the patch version of Microsoft.EntityFrameworkCore.Relational as a direct dependency of your application.