James RAVAILLE http://blogs.dotnet-france.com/jamesr
2 Premiers pas avec le Framework Entity
Sommaire
1 Présentation de l’application à développer .................................................................................... 3 1.1 Création de la base de données .............................. 3 1.1.1 Le modèle conceptuel de données ................. 3 1.1.2 Le modèle logique de données ....................................................................................... 3 1.2 Alimentation de la base de données 5 1.3 Architecture de l’application ................................................................................................... 5 1.4 Création des projets ................ 6 2 Création du composant d’accès aux données ................................................................................. 7 2.1 Création du composant Entity Data Model ............. 7 2.2 Création de la couche d’accès aux données.......... 13 2.2.1 Création de la classe de gestion du contexte de données ............................................ 14 2.2.2 Extension « globale » des entités .................................................. 16 2.2.3 Extension des classes d’entité ....................................................... 17 3 Affichage et gestion des données ................................................................. 20 3.1 Création du ...
James RAVAILLE http://blogs.dotnet-france.com/jamesr
Version 1.2
2Premiers pas avec le Framework Entity
Sommaire
1Présentation de l’ application à développer.................................................................................... 3 1.1 Création de la base de données .............................................................................................. 3 1.1.1 Le modèle conceptuel de données ................................................................................. 3 1.1.2 Le modèle logique de données ....................................................................................... 3 1.2 Alimentation de la base de données ....................................................................................... 5 1.3Architecture de l’ application................................5................................................................... 1.4 Création des projets ................................................................................................................ 6 2Création du composant d’ accès aux données.................................................................7................ 2.1 Création du composant Entity Data Model ............................................................................. 7 2.2Création de la couche d’ accès aux données.......................................................................... 13 2.2.1 Création de la classe de gestion du contexte de données ............................................ 14 2.2.2 Extension « globale » des entités .................................................................................. 16 2.2.3Extension des classes d’ entité..................................................................17..................... 3 Affichage et gestion des données ................................................................................................. 20 3.1 Création du formulaireDmrFlStaetairegiai..20......................................................................... 3.1.1 Design du formulaire ..................................................................................................... 20 3.1.2 Code-behind du formulaire ........................................................................................... 21 3.2 Création du formulaireigatSetsiLnoitsesreaiFrmG............................................................... 23 3.2.1 Design du formulaire ..................................................................................................... 23 3.2.2 Code-behind du formulaire ........................................................................................... 25 4Exécution de l’ application............................................................................................................. 33 5 Conclusion ..................................................................................................................................... 34
Dotnet France Association–James RAVAILLE
3Premiers pas avec le Framework Entity 1Présentation de l’application à développerVoici la description d’ une applicationque nous allons développer tout au long de ce cours. L’ application aura pour but deconsulter et de gérer une liste de stagiaires, et des cours qu’ ils peuvent suivre. 1.1Création de la base de données 1.1.1Le modèle conceptuel de données Le modèle conceptuel des données (aussi appelé MCD) permet de représenter de façon formelle, sous forme d’ un schéma, les données qui seront utilisées par une application. Ce schéma est composé d’ entités, reliées entre elles par des relations d’ association.Voici le modèle conceptuel de données de notre application :
Ce modèle décrit les entités Stagiaire et Cours. Il met aussi en évidence : -Qu’ un stagiaire peut suivre un ou plusieurs cours.- un ou plusieurs stagiaires.Qu’ un cours peut être suivi par aucun,1.1.2Le modèle logique de données Nous allons maintenant créer le modèle logique de données. La relation n-aire bilatérale entre les tables Stagiaire et Cours nous queentraîne la création d’ table supplémentaire, une appelons Stagiaire2Cours. Cette table agrège les champs constituant la clé primaire des tables Cours et Stagiaire. Le modèle logique de données obtenu est donc le suivant :
Pour créer ce schéma de base de données, lancer SQL Server Management Studio (interface d’ administration de SQL Server).Créez une base de données nommée DotnetFrance, puis dans une fenêtre de requête, exécutezle jeu d’ instructionsTransact-SQL suivant :
5Premiers pas avec le Framework Entity Voici une brève description des tables : -Stagiaire: contient toutes les informations relatives aux stagiaires. -Courscours. Les stagiaires doivent suivre des: contient toutes les informations relatives aux cours afin de pouvoir travailler sur un projet d’ un client.-rsigatSuoC2eriales stagiaires à un cours. Un stagiaire peut assister à: permet de lier plusieurs cours, et un cours peut concerner plusieurs stagiaires.
1.2Alimentation de la base de données Voici un jeu d’ instructions Transact- d’ alimenter les tables en donnéesSQL, permettant: -- SQL -- Alimentation de la table des stagiaires. INSERTINTOStagiaire(Nom,Prenom)VALUES('DEROUX','Alain') INSERTINTOStagiaire(Nom,Prenom)VALUES('RAVAILLE','James') INSERTINTOStagiaire(Nom,Prenom)VALUES('SIRON','Karl') INSERTINTOStagiaire(Nom,Prenom)VALUES('EMATO','Julie') -- Alimentation de la table des stagiaires. INSERTINTOCours(Libelle,NombreJours)VALUES('SQL Server -Administration de serveurs',5) INSERTINTOCours(Libelle,NombreJours)VALUES('XHTML / CSS',3) INSERTINTOCours(Libelle,NombreJours)VALUES('C#',5) INSERTINTOCours(Libelle,NombreJours)VALUES('ASP .NET 3.5',5) INSERTINTOCours(Libelle,NombreJours)VALUES('ASP .NET AJAX',3) -- Affectation des cours aux stagiaires. INSERTINTOStagiaire2Cours(IdStagiaire,IdCours)VALUES(1,1) INSERTINTOStagiaire2Cours(IdStagiaire,IdCours)VALUES(1,3) INSERTINTOStagiaire2Cours(IdStagiaire,IdCours)VALUES(2,2) INSERTINTOStagiaire2Cours(IdStagiaire,IdCours)VALUES(2,1) INSERTINTOStagiaire2Cours(IdStagiaire,IdCours)VALUES(2,3) INSERTINTOStagiaire2Cours(IdStagiaire,IdCours)VALUES(2,4) INSERTINTOStagiaire2Cours(IdStagiaire,IdCours)VALUES(3,1) INSERTINTOStagiaire2Cours(IdStagiaire,IdCours)VALUES(3,4) INSERTINTOStagiaire2Cours(IdStagiaire,IdCours)VALUES(3,5) INSERTINTOStagiaire2Cours(IdStagiaire,IdCours)VALUES(4,4) INSERTINTOStagiaire2Cours(IdStagiaire,IdCours)VALUES(4,5)
1.3Architecture de l’applicationL’ application est composée de deux projets: -MHDotnetFrance_I permettant d’ afficher: projetles données de la base de données DotnetFrance, etd’ interagir avec les utilisateurs pour gérer ces données.-OcnarAD_etoDFten et de gestion des données contenues dans la base de: projet d’ accès données DotnetFrance. Voici le schéma de notre application :
Dotnet France Association–James RAVAILLE
6Premiers pas avec le Framework Entity
1.4Création des projets Dans Visual Studio 2008, créer deux projets : -Un projet de type Bibliothèque de classes, nomm_(Data Access Object). éDotnetFrance DAO-Un projet de type Windows Forms appeléMHtnetDoce_IFran.
_ Dans le projetDoanHFMre_Ittcneajouter une référence vers le projet, DotnetFrance DAO.
Dotnet France Association–James RAVAILLE
7Premiers pas avec le Framework Entity 2Création du composant d’accès aux données
2.1Création du composant Entity Data Model Dans le projetetFrDotn_DAOance, ajoutons un composant de type ADO.NET Entity Data Model, nomméDotnetFrance:
Après avoir validé, la fenêtre suivante apparaît :
Dotnet France Association–James RAVAILLE
8Premiers pas avec le Framework Entity
Nous allons créer notre composant d’ accès et gestion de données à partir de notre base de données DotnetFrance. Nous sélectionnons alors l’ item «Générer à partir de la base de données », et cliquons sur le bouton « Suivant ». La fenêtre suivante apparaît :
Dotnet France Association–James RAVAILLE
9Premiers pas avec le Framework Entity
Dans cette fenêtre, choisir une connexion pointant vers notre base de données, ou alors créer une nouvelle connexion en cliquant sur le bouton «Nouvelle connexion…». Dans le second cas, la fenêtre suivante apparaît :
Dotnet France Association–James RAVAILLE
10Premiers pas avec le Framework Entity
Dans cette fenêtre, saisir le nom de votre instance SQL Server, sur laquelle votre base de données est hébergée. Puischoisissez votre mode d’ authentification, ainsi que la base de données. Cliquer sur le bouton « Tester la connexion », afin de vérifier si toutes ces informations sont correctes. Cela est nécessaire, car elles seront utilisées pour créer la chaîne de connexion. Une fois cette fenêtre validée, nous revenons à la fenêtre suivante :
Dotnet France Association–James RAVAILLE
11
Premiers pas avec le Framework Entity
Cliquer alors sur le bouton « Suivant ». La fenêtre suivante apparaît :