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 | Actuellement en préversion | 7 | 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.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de l’année 2024, nous abandonnerons progressivement le mécanisme de retour d’information GitHub Issues pour le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultez :Soumettre et afficher des commentaires pour