Génération de modèles et de mappages
Les applications et les services Entity Framework sont basés sur des informations de modèle et de mappage exprimées en trois langages basés sur XML :
Le langage CSDL représente les données de l'application sous la forme d'un jeu d'entités et de relations dans un modèle conceptuel, et c'est une implémentation du modèle Entity Data Model. Un modèle de stockage est exprimé en langage SSDL et représente le schéma du magasin de données. Le mappage entre les deux modèles est exprimé en langage MSL.
Les langages CSDL, SSDL et le contenu MSL d'une application peuvent être générés automatiquement par les outils décrits dans la rubrique ADO.NET Entity Data Model Tools. L'Entity Data Model Wizard génère les informations de modèle et de mappage ainsi que les classes de données d'une base de données existante. Entity Data Model Designer (le Concepteur d'entités) peut ensuite être utilisé pour modifier graphiquement les informations de modèle et de mappage. Sinon, vous pouvez créer graphiquement un modèle conceptuel avec le Concepteur d'entités, puis utiliser l'Generate Database Wizard pour générer automatiquement le modèle de stockage, les mappages, les classes de données et une base de données qui prend en charge le modèle conceptuel. Dans l'un et l'autre scénario, vous pouvez utiliser l'Update Model Wizard pour mettre à jour les informations de modèle et de mappage lorsque la base de données sous-jacente est modifiée.
L'utilitaire de ligne de commande EDM Generator (EdmGen.exe) permet de générer un modèle conceptuel simple avec un mappage un-à-un entre les entités et les tables d'une source de données. Vous pouvez également utiliser EdmGen.exe pour valider un modèle conceptuel et pour générer les classes de données basées sur des types d'entité dans le modèle. EdmGen.exe fait partie des composants runtime Entity Framework inclus dans .NET Framework version 3.5 Service Pack 1 (SP1) et dans les versions ultérieures.
Éléments à prendre en considération
Les considérations suivantes s'appliquent lorsque vous utilisez les Outils Entity Data Model pour générer un modèle conceptuel à partir d'une base de données existante :
À chaque entité doit correspondre une clé. Si la base de données contient une table sans clé primaire, les outils Entity Data Model essaient de déduire une clé pour l'entité correspondante. De plus, les outils Entity Data Model génèrent un élément DefiningQuery dans le schéma de stockage et les données de cette entité passent en lecture seule. Pour que les données de l'entité puissent être mises à jour, vous devez d'abord vérifier que la clé générée est valide puis supprimer l'élément DefiningQuery.
Une table qui contient uniquement des clés étrangères (quelquefois appelée une table de jointure pure) et qui représente une relation plusieurs à plusieurs entre deux tables dans la base de données, n'aura pas d'entité correspondante dans le modèle conceptuel. Lorsque les outils Entity Data Model rencontrent une telle table, la table est représentée dans le modèle conceptuel comme une association plusieurs à plusieurs au lieu d'une entité. L'association CourseInstructor dans le modèle School est une illustration de ce comportement. Pour plus d'informations, consultez Génération du fichier School.edmx (Démarrage rapide d'Entity Framework).
Modèle School
Les rubriques de cette section Mise en route (Entity Framework) utilisent une base de données nommée School comme exemple. Consultez la rubrique Création de l'exemple de base de données School (Démarrage rapide d'Entity Framework) pour examiner le script qui génère la base de données School dans une instance de SQL Server.
La base de données School contient les tables suivantes :
Course
StudentGrade
CourseInstructor
Department
OfficeAssignment
OnlineCourse
OnsiteCourse
Person
Cet exemple de base de données met en évidence les nombreux scénarios de modélisation complexes pris en charge par les outils Entity Data Model . Le script crée les relations entre les tables et insère les données d'exemple que vous pouvez exploiter de façon à en tirer des enseignements. Vous trouverez ci-dessous le modèle School tel qu'il est affiché dans le Concepteur d'entités ADO.NET Entity Data Model Designer :
Voir aussi
Concepts
Mappage d'un modèle conceptuel à un modèle de stockage
Autres ressources
Configuration d'Entity Framework (Tâches Entity Framework)
Mise en route (Entity Framework)
Entity Data Model Tools
Spécifications CSDL, SSDL et MSL