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.

Package NuGetNuGet Package Moteurs de base de données pris en chargeSupported database engines Chargé de maintenance / fournisseurMaintainer / Vendor Remarques / exigencesNotes / Requirements Liens utilesUseful links
Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.SqlServer SQL Server 2008 et ultérieurSQL Server 2008 onwards Projet EF Core (Microsoft)EF Core Project (Microsoft) docsdocs
Microsoft.EntityFrameworkCore.SqliteMicrosoft.EntityFrameworkCore.Sqlite SQLite 3.7 et ultérieurSQLite 3.7 onwards Projet EF Core (Microsoft)EF Core Project (Microsoft) docsdocs
Microsoft.EntityFrameworkCore.InMemoryMicrosoft.EntityFrameworkCore.InMemory Fournisseur en mémoire EF CoreEF Core in-memory database Projet EF Core (Microsoft)EF Core Project (Microsoft) À des fins de test uniquementFor testing only docsdocs
Npgsql.EntityFrameworkCore.PostgreSQLNpgsql.EntityFrameworkCore.PostgreSQL PostgreSQLPostgreSQL Équipe de développement NpgsqlNpgsql Development Team docsdocs
Pomelo.EntityFrameworkCore.MySqlPomelo.EntityFrameworkCore.MySql MySQL, MariaDBMySQL, MariaDB Projet Pomelo FoundationPomelo Foundation Project readmereadme
Pomelo.EntityFrameworkCore.MyCatPomelo.EntityFrameworkCore.MyCat Serveur MyCATMyCAT Server Projet Pomelo FoundationPomelo Foundation Project Version préliminaire jusqu’à EF Core 1.1Pre-release, Up to EF Core 1.1 readmereadme
EntityFrameworkCore.SqlServerCompact40EntityFrameworkCore.SqlServerCompact40 SQL Server Compact 4,0SQL Server Compact 4.0 Erik Ejlskov JensenErik Ejlskov Jensen .NET Framework.NET Framework wikiwiki
EntityFrameworkCore.SqlServerCompact35EntityFrameworkCore.SqlServerCompact35 SQL Server Compact 3.5SQL Server Compact 3.5 Erik Ejlskov JensenErik Ejlskov Jensen .NET Framework.NET Framework wikiwiki
MySql.Data.EntityFrameworkCoreMySql.Data.EntityFrameworkCore MySQLMySQL Projet MySQL (Oracle)MySQL project (Oracle) Version préliminairePre-release docsdocs
FirebirdSql.EntityFrameworkCore.FirebirdFirebirdSql.EntityFrameworkCore.Firebird Firebird 2.5 et 3.xFirebird 2.5 and 3.x Jiří ČinčuraJiří Činčura EF Core 2.0 et ultérieurEF Core 2.0 onwards docsdocs
EntityFrameworkCore.FirebirdSqlEntityFrameworkCore.FirebirdSql Firebird 2.5 et 3.xFirebird 2.5 and 3.x Rafael AlmeidaRafael Almeida EF Core 2.0 et ultérieurEF Core 2.0 onwards wikiwiki
IBM.EntityFrameworkCoreIBM.EntityFrameworkCore Db2, InformixDb2, Informix IBMIBM Version WindowsWindows version blogblog
IBM.EntityFrameworkCore-lnxIBM.EntityFrameworkCore-lnx Db2, InformixDb2, Informix IBMIBM Version LinuxLinux version blogblog
IBM.EntityFrameworkCore-osxIBM.EntityFrameworkCore-osx Db2, InformixDb2, Informix IBMIBM Version macOSmacOS version blogblog
Devart.Data.Oracle.EFCoreDevart.Data.Oracle.EFCore Oracle 9.2.0.4 et ultérieurOracle 9.2.0.4 onwards DevArtDevArt PayéPaid docsdocs
Devart.Data.PostgreSql.EFCoreDevart.Data.PostgreSql.EFCore PostgreSQL 8.0 et ultérieurPostgreSQL 8.0 onwards DevArtDevArt PayéPaid docsdocs
Devart.Data.SQLite.EFCoreDevart.Data.SQLite.EFCore SQLite 3 et ultérieurSQLite 3 onwards DevArtDevArt PayéPaid docsdocs
Devart.Data.MySql.EFCoreDevart.Data.MySql.EFCore MySQL 5 et ultérieurMySQL 5 onwards DevArtDevArt PayéPaid docsdocs
EntityFrameworkCore.JetEntityFrameworkCore.Jet Fichiers Microsoft AccessMicrosoft Access files BubiBubi EF Core 2.0, .NET FrameworkEF Core 2.0, .NET Framework readmereadme

Futurs fournisseursFuture Providers

Cosmos DBCosmos DB

Nous développons actuellement un fournisseur EF Core pour l’API DocumentDB dans Cosmos DB.We have been developing an EF Core provider for the DocumentDB API in Cosmos DB. Il s’agit du premier fournisseur de base de données complet orienté documents que nous produisons. Les retours de cet exercice nous aideront à déterminer les améliorations conceptuelles à apporter à la prochaine version (après 2.1).This will be the first complete document-oriented database provider we have produced, and the learnings from this exercise are going to inform improvements in the design of the subsequent release after 2.1. Notre objectif est de publier une préversion du fournisseur pendant la phase 2.1.The current plan is to publish an early preview of the provider in the 2.1 timeframe.

OracleOracle

L’équipe Oracle .NET a annoncé son intention de publier un fournisseur de première partie pour EF Core 2.0 aux alentours du troisième trimestre 2018.The Oracle .NET team has announced they are planning to release a first-party provider for EF Core 2.0 approximately in the third quarter of 2018. Pour plus d’informations, consultez son programme pour .NET Core et Entity Framework Core.See their statement of direction for .NET Core and Entity Framework Core for more information. Veuillez adresser vos questions concernant ce fournisseur, y compris la chronologie de la publication, au site de la communauté Oracle.Please direct any questions about this provider, including the release timeline, to the Oracle Community Site.

Pendant ce temps, l’équipe EF a produit un exemple de fournisseur EF Core pour bases de données Oracle.In the meanwhile, the EF team has produced a sample EF Core provider for Oracle databases. L’objectif du projet n’est pas de produire un fournisseur EF Core détenu par Microsoft, mais de faciliter l’identification des écarts au niveau des fonctionnalités relationnelles et de base d’EF Core pour offrir une meilleure prise en charge d’Oracle et accélérer le développement d’autres fournisseurs Oracle pour EF Core par Oracle ou des tiers.The purpose of the project is not to produce an EF Core provider owned by Microsoft, but to help us identify gaps in EF Core's relational and base functionality which we need to address in order to better support Oracle, and to jumpstart the development of other Oracle providers for EF Core by either Oracle or third parties.

Ls contributions qui améliorent l’exemple d’implémentation seront prises en compte.We will consider contributions that improve the sample implementation. Nous encourageons également la communauté à créer un fournisseur Oracle open source pour EF Core en se servant de l’exemple comme point de départ.We would also welcome and encourage a community effort to create an open-source Oracle provider for EF Core, using the sample as a starting point.

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.Most database providers for EF Core are distributed as NuGet packages. Cela signifie que vous pouvez les installer à l’aide de l’outil dotnet dans la ligne de commande :This means they can be installed using the dotnet tool in the command line:

dotnet add package provider_package_name

Ou, dans Visual Studio, à l’aide de la console du Gestionnaire de package de NuGet :Or in Visual Studio, using NuGet's Package Manager Console:

install-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.