Matthieu Mezil
Les bases d'Entity Data Model
Avec EDM, l'Entity Framework permet d'assurer l'indépendance entre les entités et le modèle de persistance et authorise un mapping très puissant
Par Matthieu Mezil publié le 24/03/2008 à 11:37, lu 8104 fois, 7 pages
 2 | La création d'un EDM
Dans Visual Studio 2008, pour créer un EDM, il faut ajouter un item de type ADO .NET Entity Model :
 
/content/5bdd0f35-3fca-491f-b418-986929ca4dcd/Add edmx item.jpg
 
Ensuite, il faut choisir entre partir d'un modèle vide ou partir d'une base de données.
 
/content/5bdd0f35-3fca-491f-b418-986929ca4dcd/EDM Wizard 1.jpg
 
Si le choix se porte vers une base de données, il faudra ensuite sélectionner la connexion vers la base en question.
 
/content/5bdd0f35-3fca-491f-b418-986929ca4dcd/EDM Wizard 2.jpg
 
Dans cet écran, une nouvelle notion apparaît : l'Entity connection string. Elle est composée de 4 éléments :
  • l'emplacement du csdl
  • l'emplacement du ssdl
  • l'emplacement du msl
  • la connection string classique
Les trois premières notions seront abordées juste après.
En dernier lieu, il faudra choisir les tables, vues, procédures stockées à intégrer dans le modèle :
 
/content/5bdd0f35-3fca-491f-b418-986929ca4dcd/EDM Wizard 3.jpg
 
Une fois cet écran validé, il sera toujours possible de mettre à jour le modèle par la suite, notamment dans le cas d'une modification de la base.
Suite à cela, de nouveaux éléments ont été rajoutés au projet :
  • un fichier App.config (s'il n'existait pas déjà) qui reprend l'Entity connection string
  • le fichier Northwind.edmx
  • un fichier Northwind.Designer.cs (ou vb) situé sous Northwind.edmx dans l'arborescence du Solution Explorer
Le fichier .edmx se décompose en trois parties :
  • la partie csdl qui décrit les entités
  • la partie ssdl qui décrit la base de données
  • la partie msl qui fait le mapping entre les deux.
 
/content/5bdd0f35-3fca-491f-b418-986929ca4dcd/EDM schema.jpg
 
Source Julia Lerman, www.thedatafarm.com

Lors de la compilation, ce fichier est éclaté en trois. C'est pour cela que l'Entity connection string, en plus de prendre la connexion vers la base de données, prend le chemin de chacun de ces trois fichiers.
Comme l'illustre bien le schéma, le mapping n'est pas un mapping simple 1->1, comme dans LINQ To SQL, mais un mapping beaucoup plus puissant autorisant de multiples manipulations.
 
» Démarrer une discussion
 
Discussion démarée par DadvDadv le 14/08/2008 à 00:38, 15 commentaire(s).
Discussion démarée par Frédéric Decréquy le 05/04/2008 à 12:00, 3 commentaire(s).
Discussion démarée par IDoCoX le 28/04/2009 à 12:22, 2 commentaire(s).
Discussion démarée par DadvDadv le 01/09/2008 à 22:57, 2 commentaire(s).
Discussion démarée par Aurelbeef le 04/03/2009 à 18:00, 2 commentaire(s).