Fiche technique | |
---|---|
Type de produit : | Cadre d'application |
Langage de programmation : | C# |
Auteur : | Microsoft |
Licence : | Apache License 2.0 |
Date de publication : | 2016 à maintenant |
Site Web : | https://github.com/dotnet/efcore |
Introduction
L'Entity Framework Core (EF Core) est un ORM (Object-Relational Mapper) open source pour .NET. Il permet aux développeurs de travailler avec des bases de données en utilisant des objets .NET, en évitant d'écrire la majorité du code SQL manuel nécessaire pour effectuer des opérations de base de données. EF Core est une version légère et extensible de Entity Framework Core (EF Core), conçue pour supporter des plateformes multiples, notamment .NET Core et .NET Framework.
Les principales caractéristiques d'Entity Framework Core sont :
- Modélisation des données via des classes :
- EF Core permet de définir le schéma de la base de données à l'aide de classes C#. Chaque classe correspond à une table, et chaque propriété correspond à une colonne de cette table.
- Ces classes sont généralement appelées entités.
- Cartographies (cartographie objet-relationnel) : EF Core assure la cartographie entre les classes (objets) et les tables relationnelles. Il gère la traduction entre les objets .NET et les lignes dans une base de données relationnelle.
- Data Context (DbContext) : Le DbContext est la classe principale utilisée dans EF Core pour interagir avec la base de données. Il est responsable de la gestion des connexions, du suivi des modifications des entités, et de la sauvegarde des modifications dans la base de données.
- LINQ à Entités : EF Core permet d'utiliser LINQ (Language-Integrated Query) pour écrire des requêtes de manière fluide, en travaillant avec des objets C# plutôt qu'avec du SQL brut. EF Core traduit ces requêtes LINQ en SQL optimisé.
- var users = context.Users
- .Where(u => u.IsActive)
- .OrderBy(u => u.Name)
- .ToList();
- Migration : EF Core permet d'appliquer des migrations pour créer et mettre à jour le schéma de la base de données en fonction des modifications des classes C#.
- Support pour plusieurs bases de données : EF Core supporte différentes bases de données, notamment SQL Server, SQLite, MySQL, PostgreSQL, et plus encore, via des fournisseurs spécifiques.
- Détection et suivi des modifications : EF Core suit les modifications apportées aux entités chargées dans le DbContext. Lors de l'appel à la méthode SaveChanges, les modifications sont traduites en opérations SQL pour être appliquées à la base de données.
- Lazy loading, eager loading, explicit loading : EF Core permet de contrôler comment et quand les entités liées sont chargées :
Exemple d'une requête LINQ avec EF Core :
Exemple de commande pour générer une migration :
dotnet ef migrations add InitialCreate |
Mode | Description |
---|---|
Lazy loading | Les entités liées sont chargées uniquement lorsqu'elles sont accédées pour la première fois. |
Eager loading | Les entités liées sont chargées immédiatement lors de la récupération de l'entité principale. |
Explicit loading | Les entités liées sont chargées explicitement par le code du développeur. |
Liste des versions
Version | Date | Description |
---|---|---|
EF Core 1.0 | 27 juin 2016 | Première version de EF Core, conçue pour remplacer Entity Framework 6 et supporter .NET Core et les applications multiplateformes. Elle introduit la modularité, une meilleure performance, et des améliorations dans le suivi des entités. |
EF Core 1.1 | 16 novembre 2016 | Ajoute des améliorations de performance et des fonctionnalités supplémentaires, telles que le support des GroupBy dans les requêtes LINQ. |
EF Core 2.0 | 14 août 2017 | Améliore le support de .NET Standard 2.0, permet une configuration plus flexible des conventions et introduit la possibilité de créer des types propres à la base de données. |
EF Core 2.1 | 30 mai 2018 | Ajoute des fonctionnalités comme le Lazy Loading, Value Conversions (conversion de types de valeur), GroupBy complet, et Data Seeding (initialisation des données). |
EF Core 2.2 | 4 décembre 2018 | Ajoute un meilleur support pour les bases de données relationnelles avec des améliorations dans les requêtes LINQ, ainsi que le support spatial pour SQL Server et PostgreSQL. |
EF Core 3.0 | 23 septembre 2019 | Alignement avec .NET Core 3.0. Cette version apporte des changements importants dans la manière dont les requêtes LINQ sont traitées, avec une réduction des comportements non prévus. Elle abandonne également certains comportements hérités de EF6. |
EF Core 3.1 (LTS) | 3 décembre 2019 | Version à support long terme (LTS) avec des corrections de bogues et quelques améliorations mineures, notamment une plus grande stabilité et des optimisations de performance. |
EF Core 5.0 | 10 novembre 2020 | Ajoute de nombreuses fonctionnalités comme le Table-per-Type (TPT), le support de Many-to-Many sans entité d'association explicite, et des améliorations dans les performances des requêtes. |
EF Core 6.0 (LTS) | 8 novembre 2021 | Version LTS avec des améliorations significatives en termes de performance, le support complet de .NET 6, et des optimisations pour les migrations. Introduit également des améliorations au niveau des transactions et des modèles de gestion des connexions. |
EF Core 7.0 | 8 novembre 2022 | Supporte .NET 7. Introduit des améliorations comme une meilleure performance des requêtes, un meilleur support des types JSON, et diverses améliorations pour les migrations et les tests. |
EF Core 8.0 | 12 novembre 2023 | Supporte .NET 8. Axée sur des performances encore plus améliorées, des simplifications dans le développement des applications, et des optimisations dans la prise en charge des bases de données non relationnelles. |
... | ... | ... |
Dernière mise à jour : Mardi, le 31 octobre 2017