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.
Futurs fournisseursFuture Providers
Cosmos DBCosmos DB
Nous développons actuellement un fournisseur EF Core pour l’API SQL dans Cosmos DB.We have been developing an EF Core provider for the SQL 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 aux prochaines versions d’EF Core et, éventuellement, à d’autres fournisseurs non relationnels.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 future releases of EF Core and possibly other non-relational providers. Une préversion est disponible dans la galerie NuGet.A preview is available on the NuGet Gallery.
OracleOracle
L’équipe Oracle .NET a annoncé son intention de publier un fournisseur de première partie pour EF Core 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 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.The purpose of the project is not to produce an EF Core provider owned by Microsoft. Ce projet a été lancé pour identifier les écarts au niveau des fonctionnalités relationnelles et de base d’EF Core afin d’offrir une meilleure prise en charge d’Oracle.We started the project to identify gaps in EF Core's relational and base functionality which we needed to address in order to better support Oracle. Il devrait également permettre à Oracle ou à des tiers d’accélérer le développement de fournisseurs Oracle pour EF Core.It should also help Oracle or third parties jumpstart the development of Oracle providers for EF Core.
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.
Commentaires
Nous aimerions avoir votre avis. Choisissez le type d’avis que vous souhaitez fournir :
Notre système de commentaires est basé sur l’infrastructure de problèmes GitHub. Apprenez-en davantage sur notre blog.
Chargement du commentaire...