Scénarios de mappage EDM (Entity Data Model) (Scénarios d'application)

Entity Framework prend en charge différentes façons de mapper des modèles conceptuels à des données relationnelles dans un modèle EDM (Entity Data Model). Pour plus d'informations, voir Modélisation des données dans Entity Framework.

Les scénarios de mappage EDM (Entity Data Model) suivants sont actuellement pris en charge par Entity Framework.

Scénario de mappage Description

Mappage simple

Dans ce scénario de mappage, chaque entité du modèle conceptuel est mappée à une seule table du modèle de stockage. C'est le mappage par défaut généré par les outils Entity Data Model. Pour plus d'informations, voir Démarrage rapide (Entity Framework).

Fractionnement d'entités

Dans ce scénario de mappage, les propriétés d'une entité unique du modèle conceptuel sont mappées à des colonnes de deux tables sous-jacentes, ou plus. Dans ce scénario, les tables doivent partager une clé primaire commune. Pour plus d'informations, voir Procédure : définir un modèle avec une même entité mappée à deux tables.

Partitionnement horizontal dans le modèle de stockage

Dans ce scénario de mappage, un type d'entité unique du modèle conceptuel est mappé à deux tables, ou plus, ayant le même schéma. L'entité est mappée dans les tables en fonction d'une condition définie dans le modèle conceptuel. Par exemple, la propriété booléenne OnlineOrderFlag de l'entité SalesOrderHeader dans le modèle de vente AdventureWorks Sales Model pourrait être utilisée pour partitionner des données d'entité dans des tables distinctes de la source de données, avec une table pour les commandes en ligne et une autre table pour les ordres hors connexion. Pour plus d'informations, voir Élément Condition (MappingFragment).

Partitionnement horizontal dans le modèle conceptuel

Dans ce scénario de mappage, plusieurs types d'entités du modèle conceptuel qui ont les mêmes propriétés sont mappés à une seule table. Une clause de condition est utilisée pour spécifier quelles données de la table appartiennent aux différents types d'entités. Ce mappage est semblable au mappage d'héritage TPH (table par hiérarchie).

Héritage TPH (table par hiérarchie)

Dans ce scénario de mappage, tous les types d'une hiérarchie d'héritage sont mappés à une seule table. Une clause de condition est utilisée pour définir les types d'entités. Pour plus d'informations, voir Procédure : définir un modèle avec l'héritage TPH (table par hiérarchie) (Entity Framework).

Héritage TPT (table par type)

Dans ce scénario de mappage, tous les types sont mappés à des tables individuelles. Les propriétés qui appartiennent uniquement à un type de base ou à un type dérivé sont stockées dans une table qui mappe à ce type. Pour plus d'informations, voir Procédure : définir un modèle avec l'héritage TPT (table par type) (Entity Framework).

Héritage de table par type concret

Dans ce scénario de mappage, chacun des types non abstraits est mappé à une table individuelle. Chacune de ces tables doit avoir des colonnes qui mappent à toutes les propriétés du type dérivé, y compris les propriétés héritées du type de base.

Jeux d'entités multiples par type

Dans ce scénario de mappage, un seul type d'entité est exprimé dans deux jeux d'entités distincts, ou plus, du modèle conceptuel. Chaque jeu d'entités est mappé à une table distincte du modèle de stockage. Pour plus d'informations, voir Procédure : définir un modèle avec jeux d'entités multiples par type (Entity Framework).

Types complexes

Un type complexe est une propriété non scalaire d'un type d'entité qui n'a pas de propriété de clé. Un type complexe peut contenir d'autres types complexes imbriqués. Les types complexes sont mappés à des tables du modèle de stockage. Pour plus d'informations, voir Procédure : définir un modèle avec des types complexes (Entity Framework).

Mappage de Function Imports

Dans ce scénario, une procédure stockée du modèle de stockage est mappée à un élément FunctionImport du modèle conceptuel. Cette fonction est exécutée pour retourner des données d'entité à l'aide de la procédure stockée mappée. Pour plus d'informations, voir Procédure : définir un modèle avec une procédure stockée (Entity Framework).

Mappage de fonctions de modification

Dans ce scénario, des procédures stockées sont définies dans le modèle de stockage qui insert, met à jour et supprime des données. Ces fonctions sont définies pour un type d'entité afin de fournir les fonctionnalités de mise à jour pour un type d'entité spécifique. Pour plus d'informations, voir Prise en charge des procédures stockées (Entity Framework).

Mappage de requêtes de définition

Dans ce scénario, une requête est définie dans le modèle de stockage qui représente une table de la source de données. La requête est exprimée dans le langage de requête natif de la source de données, tel que Transact-SQL, lors du mappage à une base de données SQL Server. Cet élément DefiningQuery est mappé à un type d'entité du modèle conceptuel. La requête est définie dans le langage de requête spécifique au magasin. Pour plus d'informations, voir Élément DefiningQuery (EntityContainer SSDL). Lorsque vous utilisez une requête de définition, les mises à jour ne peuvent pas être rendues persistantes dans la source de données à l'aide du processus de mise à jour standard. Les mises à jour peuvent être effectuées en définissant des mappages de fonctions de modification. Pour plus d'informations, voir Prise en charge des procédures stockées (Entity Framework).

Mappage d'affichages des requêtes

Dans ce scénario, un mappage en lecture seule est défini entre des types d'entités du modèle conceptuel et des tables relationnelles du modèle de stockage. Ce mappage est défini en fonction d'une requête Entity SQL sur le modèle de stockage qui retourne des entités dans le modèle conceptuel. Pour plus d'informations, voir Élément QueryView (EntitySetMapping). Lorsque vous utilisez un affichage des requêtes, les mises à jour ne peuvent pas être rendues persistantes dans la source de données à l'aide du processus de mise à jour standard. Les mises à jour peuvent être effectuées en définissant des mappages de fonctions de modification. Pour plus d'informations, voir Prise en charge des procédures stockées (Entity Framework).

Mappage d'ensembles d'associations

Les associations définissent des relations entre des entités. Dans un mappage simple avec une association un-à-un ou un-à-plusieurs, les associations qui définissent des relations dans le modèle conceptuel sont mappées à des associations du modèle de stockage. Les mappages d'ensembles d'associations avancés suivants sont également pris en charge :

  • Associations plusieurs-à-plusieurs. Les deux terminaisons de l'association sont mappées à une table de liens dans le modèle de stockage.

  • Association automatique. Cela prend en charge une association entre deux entités du même type, telles qu'une entité Employee avec une association à une autre entité Employee.

  • Associations entre des types dérivés. Ce mappage prend en charge une association entre un type dérivé dans une hiérarchie et un type dérivé dans une deuxième hiérarchie.

Pour plus d'informations, voir Association (EDM).

Pour plus d'informations sur les scénarios de mappage pris en charge par les outils Entity Data Model, voir Vue d'ensemble d'ADO.NET Entity Data Model Designer.

Voir aussi

Concepts

Héritage dans les modèles EDM (Scénarios d'application)
Ressources Entity Framework
Interroger un modèle EDM (scénarios d'application)
Classes Entity Data Model du programme (scénarios d'application)
Définir un modèle EDM (Scénarios d'application)

Autres ressources

Guide de programmation (Entity Framework)
Exemples (Entity Framework)