bernard fedotoff bfedotoff@hotmail.com bfedotoff@hotmail.com consultant.net & microsoft regional...
Post on 03-Apr-2015
119 Views
Preview:
TRANSCRIPT
Introduction à Entity Framework
Bernard Fedotoff bfedotoff@hotmail.com Consultant .NET & Microsoft Regional DirectorAgilcomwww.agilcom.info
Agenda
Présentation d’Entity FrameworkPrincipe du mappageEntity Client & Object ServiceEntity Framework vs Linq-to-SQL ?Question Performance
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.)
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
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 ;
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 ;
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
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 ;
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 ;
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.
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>
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) ;
Rappel
Présentation d’Entity FrameworkPrincipe du mappageEntity Client & Object ServiceEntity Framework vs Linq-to-SQL ?Question Performance
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
Save the date for tech·days next year!
14 – 15 avril 2010, CICG
Classic Sponsoring Partners
Premium Sponsoring Partners
top related