Développement dapplication avec base de données Semaine 1 : Présentation dEntity Framework Automne 2013
Quest-ce que cest Entity FrameWork? Création dun Entity Data Model Définition des éléments primaire de lEntity Data Model Plan de présentation
ADO.NET Entity Framework.NET Framework 4.5 Entity Framework permet aux développeurs de créer des applications daccès aux données en programmant par rapport à un modèle dapplication conceptuel au lieu de programmer directement par rapport à un schéma de stockage relationnel. Lobjectif est de diminuer la quantité de code et les besoins en maintenance pour les applications orientées objet. Quest-ce que cest?
Framework.NET 1.0/1.1 : contient les briques fondamentales dADO.NET, avec les classes permettant daccéder, lire, et gérer des données contenues dans une base de données (connection, command, DataReader, DataAdapter, DataTable, DataSet, CommandBuilder, …). - Framework.NET 2.0 : ADO.NET évolue. Le Framework.NET propose de nouvelles classes de plus haut niveau offrant plus de possibilités dans laccès aux données, et nous permettant décrire moins de code dans nos applications (TableAdapter, DataSource, …). - Framework.NET 3.0 : extensions du Framework 2.0, proposant les extensions suivantes : Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF), Windows Workflow Foundation(WF), et CardSpace. - Framework.NET 3.5 : Microsoft fait évoluer les langages C# et VB.NET, de manière à leur ajouter de nouveaux concepts (initialiseur dobjets, méthodes dextension, inférence de type, type anonyme, expression Lambda, …). Lintroduction de ces concepts ont permis dintégrer dans le jeu instructions des langages, des instructions de requêtage, permettant de requêter différentes sources de données : grappes dobjets (Linq For Object), flux XML (Linq For XML), base de données SQL Server (Linq For SQL, Linq For Entities). Histoire
ADO.NET Entity Framework.NET Framework 4.5 LEntity Framework a été introduit la première fois en tant que partie intégrante du.NET Framework(3.5) et de la version finale de Microsoft Visual Studio SP1 au mois de juillet Cependant, ce nest quà partir de la version contenue dans Visual Studio 2010 et.NET 4 en avril 2010 que les développeurs ont vraiment commencé à lutiliser. À partir de lEntity Framework version 4.1, lEntity Framework ne fait pas partie du.NET Framework, mais repose sur le.NET. Pour obtenir la version la plus récente de lEntity Framework, utilisez le package « Entity Framework » NuGet.package « Entity Framework » NuGet Histoire
ADO.NET Entity Framework.NET Framework 4.5 les applications peuvent fonctionner par rapport à un modèle conceptuel plus centré sur les applications, comprenant notamment des types avec héritage, des membres complexes et des relations ; les applications sont libérées des dépendances codées en dur sur un moteur de données ou un schéma de stockage particulier ; les mappages entre le modèle conceptuel et le schéma spécifique au stockage peuvent être modifiés sans changer le code de lapplication ; les développeurs peuvent utiliser un modèle objet dapplication cohérent qui peut être mappé à différents schémas de stockage implémentés dans divers systèmes de gestion de bases de données ; Présentation
ADO.NET Entity Framework.NET Framework 4.5 plusieurs modèles conceptuels peuvent être mappés à un schéma de stockage unique ; la prise en charge de la fonctionnalité LINQ (Language- Integrated Query) permet deffectuer la validation de la syntaxe au moment de la compilation par rapport à un modèle conceptuel. Présentation
LEntity Data Model (EDM) est lélément centrale de l Entity Framework. Il représente le modèle de données du coté applicatif. Celui-ci peut-être complètement différent du modèle de la base de données. Il reflète les besoins de lapplication plutôt que ceux de la base de données. Classes, type de données différentes, etc. Entity Data Model(EDM)
Les éléments qui composent lEDM sappelle les « Entities ». Il est possible dadapter le modèle grâce à lhéritage, composition, etc. Les Entities
Un avantages de lEntities Framework est lindépendance entre la base de données et lapplication. Les opérations relatif à la base de données sont masqué par le Provider. Le Provider est développer par la compagnie propriétaire de la base de données. Voici une liste des Provider disponibles: Un ODBD nest pas valide avec lEntity Framework. Liens avec la base de données
Trois fichier XML: Modèle conceptuel : syntaxe CSDL au format XML (Conceptual Schema Definition Language) qui définit les entités et les associations entre elles. Il décrit les classes utilisées dans lapplication pour accéder et gérer les données. Modèle logique : syntaxe SSDL (Store Schema Definition Language). Il définit les tables et lensemble des contraintes sur ces tables. Il présente ainsi une vue de la base de données. Schéma de liaison : syntaxe MSL (Mapping Specification Language) qui permet de faire le lien entre les 2 modèles précédents. Il réalise alors les opérations de mapping. Composition de lEDM
An Entity Data Model (EDM) is the bridge between your application and your data store. An EDM provides you with the ability to work with a conceptual view of your data rather than the actual database schema..NET APIs provided by the Entity Framework use an EDM for every interaction with the data store, whether it is to retrieve or to save data. The Entity Framework tools generate classes from this model that enable you to work with objects described by the EDM. Récapitulons
Pour lexemple, nous allons utiliser la base de données ProgrammingEFDB1 sur le serveur Dans Visual Studio créer lEDM Lets GO
Propriétés(scalar): Ce sont les propriétés de lentité(ContactID, FirstName, LastName, Title, etc.) Propriétés de navigation: Ce sont des pointeurs vers les entités en relations(Adresses, etc.) Les associations: défini la relation entre les entités, elles et définissent la cardinalité. Lets GO
Propriétés(scalar): Lets GO
Propriétés de navigation: Permet dans le code davoir accès à la collection Associé. Lets GO
Les associations: Lets GO
Les associations: Lets GO
Container(ConceptualEntityModel): Groupe logique représentant le groupe dentities. Vous pouvez modifier le nom, namespace, règles de pluriel, etc. Propriété dun entité: nom de lentité et autres propriétés. Lets GO
Nous avons vue le modèle conceptuel, allons voir plus creux. Allons voir sous le capot
CSDL et SSDL
Mapping
Résumé Bref historique dEntity Framework. Entity Data Model Les éléments des Entities Prochain cours Nous explorerons les différentes façons dinterroger lEntity Data Model. Conclusion