Entity Framework 6.4 était la dernière version du framework classique. Bien qu'Entity Framework 6 soit toujours pris en charge, son développement est arrêté et il ne recevra plus que des correctifs pour les failles de sécurité.
Un nouveau framework appelé Entity Framework Core (EF Core) a été introduit en 2016 avec des fonctionnalités similaires, mais pas identiques. La numérotation des versions de ce framework a redémarré à partir de 1.0.
ADO.NET qui facilite le développement d'applications logicielles orientées données. Les architectes et les développeurs de ces applications sont généralement confrontés à la nécessité de concilier deux objectifs très différents : modéliser les entités, les relations et la logique des problèmes métier qu'ils résolvent, et interagir avec les moteurs de données utilisés pour stocker et extraire ces données. Ces dernières peuvent être réparties sur plusieurs systèmes de stockage, chacun avec ses propres protocoles ; même les applications fonctionnant avec un seul système de stockage doivent trouver un équilibre entre les exigences de ce système et celles liées à l'écriture d'un code applicatif efficace et maintenable. Ce problème est généralement désigné comme une « incompatibilité d'impédance objet-relationnelle »De nombreux outils de mappage objet-relationnel (ORM), également appelés « gestionnaires objet-relationnel », ont été développés pour permettre aux développeurs de manipuler des données sous forme d'objets et de propriétés spécifiques au domaine, comme les clients et leurs adresses, sans avoir à se soucier des tables et colonnes de la base de données sous-jacente. Grâce à un ORM, les développeurs peuvent travailler à un niveau d'abstraction plus élevé et créer et maintenir des applications orientées données avec moins de code que les applications traditionnelles. Entity Framework est la solution ORM actuellement recommandée au sein de l'environnement de développement Microsoft.
Histoire
La première version d'Entity Framework (EFv1) a été incluse dans .NET Framework 3.5 Service Pack 1 et Visual Studio 2008 Service Pack 1, publiés le licence Apache v2. À l'instar d' ASP.NET MVC , son code source est hébergé sur GitHub via Git. Cette version apporte plusieurs améliorations pour la prise en charge de l'approche licence Apache v2 et a été entièrement développé en open source sur GitHub . Bien qu'il partage certaines similitudes conceptuelles avec les versions précédentes d'Entity Framework, il s'agit d'une base de code entièrement nouvelle, conçue pour être plus efficace, puissante, flexible et extensible, fonctionnant sous Windows, Linux et macOS, et prenant en charge une nouvelle gamme de bases de données relationnelles et NoSQL .
Entity Framework Core 2.0 a été publié le
L'architecture d'ADO.NET Entity Framework, de bas en haut, se compose des éléments suivants :L'analyseur EDM et le mappage des vues prennent en entrée la spécification SDL du modèle de données et son mappage sur le modèle relationnel sous-jacent, permettant ainsi la programmation sur le modèle conceptuel. À partir du schéma relationnel, il crée des vues des données correspondant au modèle conceptuel. Il agrège les informations provenant de plusieurs tables afin de les regrouper en une entité, et divise la mise à jour d'une entité en plusieurs mises à jour des tables ayant contribué à cette entité.
- Les services d'objets génèrent automatiquement le code des classes CLR qui exposent les mêmes propriétés qu'une entité, permettant ainsi l'instanciation d'entités en tant qu'objets .NET.
- Les services Web , qui exposent des entités sous forme de services Web.
Modèle de données d'entité
Le modèle de données d'entités ( EDM ) spécifie le modèle conceptuel (CSDL) des données, en utilisant une technique de modélisation elle-même appelée modèle de données d'entités, une version étendue du modèle entité-relation . Le modèle de données décrit principalement les entités et les associations auxquelles elles participent. Le schéma EDM est exprimé en langage de définition de schéma (SDL), une application du langage XML (Extended Markup Language). De plus, le mappage (MSL) des éléments du schéma conceptuel (CSDL) vers le schéma de stockage (SSDL) doit également être spécifié. Cette spécification de mappage est également exprimée en XML

Visual Studio propose également l' Entity Designer pour la création visuelle du modèle de données d'entreprise (EDM) et de la spécification de mappage. Cette approche, appelée « Model First », est une alternative aux approches « Code First » et « Database First ». L'outil génère un fichier XML (*.edmx) spécifiant le schéma et le mappage. Ce fichier contient les métadonnées EF (contenu CSDL/MSL/SSDL). Ces trois fichiers (CSDL, MSL et SSDL) peuvent également être créés ou modifiés manuellement. L'approche « Model First » ne sera pas prise en charge par EF Core. jointures nécessaires pour référencer les informations d'une entité provenant de plusieurs tables, ou lors du parcours d'une relation. Lorsqu'une entité est mise à jour, elle identifie la table d'origine des informations et exécute des instructions SQL UPDATE pour mettre à jour les tables concernées. ADO.NET Entity Framework utilise eSQL, un dérivé de SQL, pour effectuer des requêtes, des opérations ensemblistes et des mises à jour sur les entités et leurs relations. Les requêtes eSQL sont ensuite traduites, si nécessaire, en SQL natif de la base de données sous-jacente.d'objets , leurs éléments et relations étant exposés en tant que propriétés. Ainsi, les objets Entity ne sont qu'une interface pour les instances des types d'entités EDM, permettant aux langages orientés objet d'y accéder et de les utiliser. De même, d'autres interfaces peuvent être créées pour exposer les entités via des services web (par exemple, WCF Data Services ) ou XML, utilisé lors de la sérialisation des entités pour le stockage persistant ou le transfert réseau.
Entités
Les entités sont des instances d' EntityType ; elles représentent les instances individuelles des objets (tels que client , commandes ) auxquels les informations se rapportent. L'identité d'une entité est définie par le type d'entité dont elle est une instance ; en ce sens, un type d'entité définit la classe à laquelle appartient une entité et définit les propriétés qu'elle possède. Les propriétés décrivent un aspect de l'entité en lui attribuant un nom et un type. Les propriétés d'un type d'entité dans ADO.NET Entity Framework sont entièrement typées et compatibles avec le système de types utilisé dans un SGBD, ainsi qu'avec le système de types commun du .NET Framework. Une propriété peut être de type simple ou complexe , et peut également être multivaluée. Tous les EntityType appartiennent à un espace de noms et possèdent une propriété EntityKey qui identifie de manière unique chaque instance du type d'entité. Les différents types de propriétés sont distingués comme suit :
Un type de relation est défini en spécifiant les points d'extrémité et leurs multiplicités. Par exemple, une relation un-à-plusieurs entre Client et Commandes peut être définie comme suit :
Interrogation des données
Entité SQL
ADO.NET Entity Framework utilise une variante du langage SQL (Structured Query Language ) , appelée Entity SQL , qui permet d'écrire des requêtes déclaratives et d'effectuer des mises à jour sur les entités et leurs relations, au niveau conceptuel. Elle diffère de SQL par l'absence de constructions explicites pour les jointures , car EDM est conçu pour abstraire le partitionnement des données entre les tables.
Where`SELECT`, Select`INSERT` et ` GroupByUPDATE`, plutôt que d'écrire des instructions SQL spécifiques à la base de données . LINQ to Entities traduit ces requêtes en arbres de commandes Entity Framework, qui sont ensuite convertis en commandes pour le fournisseur de base de données sous-jacent et exécutés sur la source de données. Étant donné que les requêtes doivent être traduites en opérations de base de données, tous les opérateurs et expressions LINQ ne sont pas pris en charge. Plusieurs fournisseurs de bases de données compatibles avec Entity Framework sont disponibles. SQL natif
Dans Entity Framework v4, de nouvelles méthodes ExecuteStoreQuery() et ExecuteStoreCommand() ont été ajoutées à la classe ObjectContext.
Plus d articles de Worldlex Wiki
Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.
Explorer l index