Utilisation des données d'entité
Entity Framework compile un ensemble de schémas conceptuels et de schémas de stockage, en même temps que les mappages associés, dans des paires bidirectionnelles d'instructions Entité SQL appelées vues clientes. Ces vues dirigent le traitement des requêtes et des mises à jour dans le moteur d'exécution. Le compilateur de mappage qui génère les vues peut être appelé soit au moment de la conception, soit pendant l'exécution lorsque la première requête est exécutée par rapport à un schéma Modèle de données d'entité (EDM).
Entity Framework s'appuie sur des données ADO.NET spécifiques au stockage en fournissant un EntityConnection à un fournisseur de données et à une base de données relationnelle sous-jacents.
Lorsqu'une requête est exécutée, elle est analysée et convertie en arborescence de commandes canonique, qui est une représentation du modèle objet de la requête. Les arborescences de commandes canoniques représentent les commandes de sélection, de mise à jour, d'insertion et de suppression. Tous les traitements suivants sont effectués sur l'arborescence de commandes, qui représente le moyen de communication entre le fournisseur System.Data.EntityClient et le fournisseur de données .NET Framework sous-jacent, tel que System.Data.SqlClient.
Le diagramme suivant illustre l'architecture Entity Framework pour l'accès aux données :
Interrogation d'objets
Les outils Entity Framework génèrent une classe dérivée d'ObjectContext qui représente le conteneur d'entités défini dans le modèle conceptuel. La classe ObjectContext prend en charge les requêtes exécutées selon un modèle EDM retournant les entités sous forme d'objets, tout comme la création, la mise à jour et la suppression d'objets d'entité. Entity Framework prend en charge les requêtes d'objet exécutées selon un modèle EDM. Les requêtes peuvent être composées à l'aide d'Entité SQL, de LINQ (Language Integrated Query) et des méthodes du générateur de requêtes d'objet.
Dans un modèle conceptuel, les entités sont liées les unes aux autres par des associations. Dans la couche objet, ces associations sont représentées par des propriétés qui exposent des collections d'objets connexes selon une référence d'entité. Par exemple, dans le modèle School, Department.Course obtient une collection d'entités constituée d'objets Course reposant sur l'association entre Course et Department. Comme les objets référencés ne sont pas chargés automatiquement, vous devez faire appel à la méthode Load sur la référence d'entité pour charger les données d'objet connexes dans le contexte d'objet. Vous pouvez également spécifier un chemin d'accès de requête qui définit les objets connexes à charger avec les objets retournés. Pour plus d'informations, voir Interrogation des données sous forme d'objets (Entity Framework).
L'exemple suivant tiré du Démarrage rapide présente une requête qui, lorsqu'elle est exécutée, extrait tous les objets Department. La définition d'un chemin d'accès de requête est la garantie que les objets Course associés aux objets Department sont également retournés. Une clause Entité SQL WHERE trie les objets retournés par Name.
' Define a query that returns all Department objects and related
' Course objects, ordered by name.
Dim departmentQuery As ObjectQuery(Of Department) = _
schoolContext.Department.Include("Course").OrderBy("it.Name")
// Define a query that returns all Department objects and related
// Course objects, ordered by name.
ObjectQuery<Department> departmentQuery =
schoolContext.Department.Include("Course").OrderBy("it.Name");
Pour plus d'informations, voir Interrogation des données sous forme d'objets (Entity Framework).
Vous pouvez définir un modèle EDM qui utilise des procédures stockées pour exécuter les requêtes sur la source de données. Les ensembles de résultats issus de ces procédures stockées sont mappés aux entités du modèle conceptuel. Pour plus d'informations, voir Prise en charge des procédures stockées (Entity Framework).
Utilisation d'objets
Dans un contexte d'objet, un objet est la représentation sous forme de type d'entité des données de la source de données. Vous pouvez modifier, créer et supprimer des objets dans un contexte d'objet. Le contexte d'objet gère les identités et les relations entre les objets. Vous pouvez également sérialiser les objets et les lier à des contrôles. Pour plus d'informations, voir Utilisation d'objets (Entity Framework).
L'exemple suivant tiré du Démarrage rapide obtient une collection d'objets Course associés à un objet Department et lie la collection à un contrôle DataGridView.
' Get the object for the selected department.
Dim department As Department = _
CType(Me.departmentList.SelectedItem, Department)
' Bind the grid view to the collection of Course objects
' that are related to the selected Department object.
courseGridView.DataSource = department.Course
// Get the object for the selected department.
Department department =
(Department)this.departmentList.SelectedItem;
// Bind the grid view to the collection of Course objects
// that are related to the selected Department object.
courseGridView.DataSource = department.Course;
Entity Framework assure le suivi des modifications apportées aux données d'entité et permet de les répercuter dans la source de données. Dans l'exemple suivant tiré du Démarrage rapide, les modifications apportées au contexte d'objet sont écrites dans la base de données.
' Save object changes to the database, display a message,
' and refresh the form.
numChanges = schoolContext.SaveChanges()
// Save object changes to the database, display a message,
// and refresh the form.
numChanges = schoolContext.SaveChanges();
Pour plus d'informations, voir Ajout, modification et suppression d'objets (Entity Framework).
Vous pouvez définir un modèle EDM qui utilise des procédures stockées pour insérer, mettre à jour et supprimer des données dans la source de données. Ces procédures stockées sont mappées aux entités du modèle conceptuel. Pour plus d'informations, voir Prise en charge des procédures stockées (Entity Framework).
Voir aussi
Concepts
Exemples LINQ to Entities
Types de modèles EDM
Relations du modèle Entity Data Model
Autres ressources
Object Services (Entity Framework)
Scénarios d'application (Entity Framework)