1 / 17

Introduction à Entity Framework

Introduction à Entity Framework. Bernard Fedotoff bfedotoff@hotmail.com Consultant .NET & Microsoft Regional Director Agilcom www.agilcom.info. Agenda. Présentation d’Entity Framework Principe du mappage Entity Client & Object Service Entity Framework vs Linq-to-SQL ?

dwight
Download Presentation

Introduction à Entity Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction à Entity Framework Bernard Fedotoff bfedotoff@hotmail.com Consultant .NET & Microsoft Regional Director Agilcom www.agilcom.info

  2. Agenda • Présentation d’Entity Framework • Principe du mappage • Entity Client & Object Service • Entity Framework vs Linq-to-SQL ? • Question Performance

  3. Entity FrameworkIntroduction • 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.)

  4. Entity FrameworkLe modèle Modèle de stockage Mappage Modèle conceptuel Shéma des objets de la base de données Schéma du modèle des entités de données *.SSDL *.MSL *.CSDL Base de données Classes objets SSDL : Store SchemaDefinitionLanguage MSL : MappingSchemaLanguage CSDL : ConceptualSchemaDefinitionLanguage XML

  5. 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 ;

  6. Entity Client • C’est un modèle d’objet ADO.NET • EntityCommand • EntityConnection • EntityDataReader • EntityParameter • EntityTransaction • Comme ADO.NET, les résultats sont retournés sous forme d’un flux texte, lu avec un DataReader • Entity 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 ;

  7. Entity SQL • C’est un langage proche du T-SQL • Il cible le modèle conceptuel • Il est indépendant de la base de données sous-jacente T-SQL Entity SQL

  8. Les objets du service • Les objets générés représentent des requêtes : • ObjectContext • ObjectQuery<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 ;

  9. Le mappage • La 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 HierarchyInheritance) • 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 ;

  10. Entity Framework vs Linq-to-Sql Linq-to-Sql devrait être intégré à Entity Framework dans un futur proche.

  11. La performance • D’un point de vue SQL • Gé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 vues • Avant 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:CSharpmode:ViewGeneration /inssdl:<ssdl> /incsdl:<csdl> /inmsl:<msl> /outviews: <cs>

  12. 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 Data • ADO.NET Dynamic Data • Evolution des modèles vers SQL DataService (Windows Azure et Cloud Computing) ;

  13. Rappel • Présentation d’Entity Framework • Principe du mappage • Entity Client & Object Service • Entity Framework vs Linq-to-SQL ? • Question Performance

  14. Plus d’informations • Kit 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 EF http://msdn.microsoft.com/en-us/library/bb399572.aspx • Les providers du marché http://msdn.microsoft.com/en-us/data/dd363565.aspx • Les outils http://msdn.microsoft.com/en-us/library/bb399249.aspx • Les blogs http://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

  15. Save the date for tech·days nextyear! 14 – 15 avril 2010, CICG

  16. Premium Sponsoring Partners Classic Sponsoring Partners

More Related