![Page 1: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/1.jpg)
Introduction à Entity Framework
Bernard Fedotoff [email protected] Consultant .NET & Microsoft Regional DirectorAgilcomwww.agilcom.info
![Page 2: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/2.jpg)
Agenda
Présentation d’Entity FrameworkPrincipe du mappageEntity Client & Object ServiceEntity Framework vs Linq-to-SQL ?Question Performance
![Page 3: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/3.jpg)
Entity Framework Introduction
Livré avec le SP1 de .Net 3.5 ;C’est un composant d’ADO.NET ;« Entity Framework » aide le développeur à abstraire les données dans un modèle conceptuel ;L’interaction avec le modèle est réalisée au travers d’un nouveau fournisseur de données « EntityClient »Indépendant de la base de données cible (Sql Server, Oracle, MySql, PostGreSql, SqlLite, NpgSql, Sybase, DB2, Informix, U2, etc.)
![Page 4: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/4.jpg)
Entity FrameworkLe modèle
Base dedonnées
Shéma des objets de la
base de données
Modèle de stockage
*.MSL*.SSD
L
Mappage
Classes objets
Schéma du modèle des entités de données
Modèle conceptuel
*.CSDL
SSDL : Store Schema Definition LanguageMSL : Mapping Schema Language CSDL : Conceptual Schema Definition Language
XML
![Page 5: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/5.jpg)
Entity FrameworkLes outils de Visual Studio 2008 SP1
L’assistant « Entity Data Model »Génère un modèle à partir d’une base de données existante (en ressource) ;Génère la chaine de connexion au modèle ;Génère le code (C# ou VB.NET) des classes basées sur le modèle conceptuel ;
Le Designer d’entités « Entity Designer »
Créé ou modifie un modèle complet ;L’assistant de mise à jour
Aide à mettre à jour un modèle en cas de changement de la base de données ;
![Page 6: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/6.jpg)
Entity Client
C’est un modèle d’objet ADO.NETEntityCommandEntityConnectionEntityDataReaderEntityParameterEntityTransaction
Comme ADO.NET, les résultats sont retournés sous forme d’un flux texte, lu avec un DataReaderEntity Client propose un accès rapide mais en lecture seulement sur le modèle d’entités ;Les requêtes sont écrites en Entity SQL ;
![Page 7: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/7.jpg)
Entity SQL
C’est un langage proche du T-SQLIl cible le modèle conceptuelIl est indépendant de la base de données sous-jacente
T-SQL
Entity SQL
![Page 8: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/8.jpg)
Les objets du service
Les objets générés représentent des requêtes :
ObjectContextObjectQuery<T>
Ces objets sont construits au dessus d’Entity Client (les requêtes sont traduites en Entity-SQL) ;Les requêtes s’expriment en utilisant Entity-SQL ou LINQ ;
![Page 9: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/9.jpg)
Le mappageLa modélisation propose des possibilités de regrouper / dégrouper les tables et les entités :
Héritage TPT (Table per Type Inheritance)C’est la modélisation d’un héritage entre des entités qui sont chacune mappée vers une table distincte ;
Dégroupage d’entités (Entity Splitting)C’est la modélisation d’une seule entité dont les informations proviennent de plusieurs tables ;
Héritage TPH (Table per Hierarchy Inheritance)
C’est la modélisation de plusieurs entités dont les informations proviennent de la même table : dans ce cas une colonne discriminante est précisée ;
![Page 10: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/10.jpg)
Entity Framework vs Linq-to-Sql
Entity Framework Linq-to-SQL
Framework .Net .NET 3.5 SP1 .NET 3.5
Méta Données Fichiers SSDL, CSDL, MSL au format XML Attributs de classe
Mappage Plusieurs scénarios possibles
Mappage « un pour un »
Designer Génération, Mise à jour du modèle, etc.
Assistant de génération
Bases de données cibles
SQL Server, Oracle, MySql, Db2, etc. SQL Server
Requêtes Entity-SQL, LINQ LINQ
Linq-to-Sql devrait être intégré à Entity Framework dans un futur proche.
![Page 11: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/11.jpg)
La performance
D’un point de vue SQLGénération des requêtes T-SQL par l’objet de Context qui analyse l’Entity-SQL ;T-SQL dans le cas où il n’y a pas de paramètre ;sp_executesql dans le cas de paramètres ;Mappage possible sur des procédures stockées ;
La génération des vuesAvant d’exécuter une requête sur un modèle, EF doit générer des vues locales ; Le coût de cette génération est fort ;Possibilité de générer ces vues avec EdmGen.Exe
EdmGen.exe /nologo /language:CSharp mode:ViewGeneration /inssdl:<ssdl> /incsdl:<csdl> /inmsl:<msl> /outviews: <cs>
![Page 12: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/12.jpg)
Intérêt de Entity Framework
Modèle simple et rapide de développement de couche d’abstraction des données ;Entity-SQL est indépendant de la base de données cible ;.NET propose des services d’exposition d’un modèle conceptuel :
ASP.NET Dynamic DataADO.NET Dynamic Data
Evolution des modèles vers SQL DataService (Windows Azure et Cloud Computing) ;
![Page 13: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/13.jpg)
Rappel
Présentation d’Entity FrameworkPrincipe du mappageEntity Client & Object ServiceEntity Framework vs Linq-to-SQL ?Question Performance
![Page 14: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/14.jpg)
Plus d’informationsKit de formation pour .Net 3.5 SP1 :
http://www.microsoft.com/downloads/details.aspx?FamilyID=355c80e9-fde0-4812-98b5-8a03f5874e96&displaylang=en
Page d’accueil EFhttp://msdn.microsoft.com/en-us/library/bb399572.aspx
Les providers du marchéhttp://msdn.microsoft.com/en-us/data/dd363565.aspx
Les outilshttp://msdn.microsoft.com/en-us/library/bb399249.aspx
Les blogshttp://blogs.msdn.com/adonet/archive/tags/Entity+Framework/default.aspx
Du code
http://code.msdn.microsoft.com/adonetefx/ Les vidéos de la PDC 2008
http://microsoftpdc.com/Default.aspx
![Page 15: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/15.jpg)
Save the date for tech·days next year!
14 – 15 avril 2010, CICG
![Page 16: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/16.jpg)
Classic Sponsoring Partners
Premium Sponsoring Partners
![Page 17: Bernard Fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com Consultant.NET & Microsoft Regional Director Agilcom](https://reader035.vdocuments.net/reader035/viewer/2022062318/551d9da0497959293b8cf989/html5/thumbnails/17.jpg)