Entity Framework - Architecture

L'architecture d'Entity Framework, de bas en haut, se compose des éléments suivants:

Fournisseurs de données

Il s'agit de fournisseurs spécifiques à la source, qui résument les interfaces ADO.NET pour se connecter à la base de données lors de la programmation par rapport au schéma conceptuel.

Il traduit les langages SQL courants tels que LINQ via l'arborescence de commandes en expression SQL native et l'exécute sur le système de SGBD spécifique.

Client d'entité

Cette couche expose la couche d'entité à la couche supérieure. Le client d'entité permet aux développeurs de travailler sur des entités sous la forme de lignes et de colonnes à l'aide de requêtes SQL d'entité sans avoir besoin de générer des classes pour représenter le schéma conceptuel. Entity Client affiche les couches de structure d'entité, qui sont la fonctionnalité principale. Ces couches sont appelées modèle de données d'entité.

  • le Storage Layer contient le schéma de base de données complet au format XML.

  • le Entity Layer qui est également un fichier XML définit les entités et les relations.

  • le Mapping layer est un fichier XML qui mappe les entités et les relations définies au niveau de la couche conceptuelle avec les relations et les tables réelles définies au niveau de la couche logique.

  • le Metadata services qui est également représenté dans Entity Client fournit une API centralisée pour accéder aux métadonnées stockées aux couches Entity, Mapping et Storage.

Service d'objets

La couche Object Services est le contexte d'objet, qui représente la session d'interaction entre les applications et la source de données.

  • L'utilisation principale du contexte d'objet est d'effectuer différentes opérations telles que l'ajout, la suppression d'instances d'entités et la sauvegarde de l'état modifié dans la base de données à l'aide de requêtes.

  • Il s'agit de la couche ORM d'Entity Framework, qui représente le résultat des données pour les instances d'objet des entités.

  • Ces services permettent aux développeurs d'utiliser certaines des fonctionnalités riches d'ORM telles que le mappage de clé primaire, le suivi des modifications, etc. en écrivant des requêtes à l'aide de LINQ et d'Entity SQL.