Développement d’application avec base de données Semaine 9 : Code First avec Entité Framework Automne 2015 Tous le matériel provient de : https://msdn.microsoft.com/fr-fr/data.

Slides:



Advertisements
Présentations similaires
Le publipostage La fonction de fusion permet de créer des documents identiques dans les grandes lignes que l’on personnalise automatiquement à chaque destinataires.
Advertisements

PHP 5° PARTIE : LES COOKIES
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
FORUM REGIONAL DE NORMALISATION DE L'UIT POUR L'AFRIQUE (Dakar, Sénégal, mars 2015) Outils et méthodes pour tester la qualité de services (QoS) de.
Tutoriel : le PGI d’EBP Lycée Jean Moulin,
Outils bibliographiques Philippe Carrère, UAG 2013.
Espace collaboratif du CODEV Blog, WIKI, Forum: c’est quoi?  Blog - Publication périodique et régulière d’articles La vocation d’un Blog est d'être un.
1 Comment préparer un plan Document No. 2.1 Gestion des activités conjointes de lutte contre la tuberculose et le VIH: cours de formation pour responsables.
JI Les systèmes d’autorisation et d’authentification dans AMI Fabian Lambert.
Leçon 3: Utiliser les options et enregistrer l’affichage.
6 ans d’utilisation de l’ordinateur avec mes élèves. Présentation : Marc André (instituteur en cinquième primaire à l’école libre de Moustier s/Sambre)
Cours de Mme Dominique Meganck - ICC - IFC MICROSOFT ACCESS Un système de gestion de bases de données...
Motiver les élèves avec des échéanciers automatisés et personnalisés AQIFGA 2015 Cette présentation de David Larochelle est mise à disposition sous licence.
Mediator 9 - Un outil de développement multimédia 3AC Techno/Informatique.
Guide d’utilisation de l’application « GESTSUBV » Direction Départementale de la Cohésion Sociale (DDCS) de l’Essonne CNDS 2012.
Développement d’application avec base de données Semaine 3 : Modifications avec Entité Framework Automne 2015.
Gabriel Dumouchel, doctorant Université de Montréal Atelier Jouvence 2011 Atelier Jouvence 2011.
Formation Achats – MM Intégration avec FI. Introduction.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 10 Support de cours rédigé par Bernard COFFIN Université.
Formation à l’édition des blogs Destinée aux animateurs des collectifs Front de Gauche du Morbihan.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 5 Support de cours rédigé par Bernard COFFIN Université.
Les outils de tests 1 1 CHAKI Abderrazak - ETIENNE Jonathan - TOUMI Nacereddine - VACHER Nicolas.
BTN4U Gérer vos réservations du bout des doigts. BTN4U Gérer les réservations du bout des doigts Consultable toujours et partout Possibilité de multi-tâches.
1 Les bases de données Séance 7 Les fonctions avancées : Opérateurs ensemblistes, Sous-requêtes et transactions.
F AMILIARISATION AVEC LES PLATEFORMES E TWINNIG P LUS Élaboré par : PSA CNTE Tunisie CENAFFE, le 4 et 5 Novembre 2013 Ministère de l’éducation Tunisienne.
Tutoriel n°4 : Administration Technique Formation : profil Administrateur.
Développement d’application avec base de données Semaine 8 : WPF avec Entité Framework Automne 2015.
Le réseau web enit.org … Depuis 2003, l’Anienit - Association Nationale des Ingénieurs ENIT – à mis sur pied et finance un serveur web indépendant de l’école.
Chapitre 4 Gestion des disques Module S41. Plan du cours 1. Utilisation de l'outil Gestion des disques 2. Utilisation des disques de base 3. Utilisation.
Un outil de communication : la liste de diffusion Mis à jour en juillet 2008 Anne Maincent-Bourdalé CRDoc IUT Paul Sabatier.
Chapitre 6 Gestion et analyse du système DNS Module S43 1.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 1 Support de cours rédigé par Bernard COFFIN Université.
Office MIX. Présentation Add-on pour PowerPoint (gratuit et en anglais) : un nouvel onglet Nécessite OFFICE 2013 ou OFFICE 365.
INTRANET.SANTEFRANCAIS.CA ANTOINE DÉSILETS Coordonnateur au réseautage et Agent de communication Formation sur l’utilisation de l’Intranet 1.
Professeur: Halima HOUSNY Chapitre1 Installation de Microsoft Windows XP Professionnel Module S41.
A RETOURNER À LA FEHAP - Service Adhésion 179 rue de Lourmel Paris - tél. O fax : O Madame, Monsieur le Pr é sident,
Slide 1 D.Bascans © 2003 By Default! Outlook Express Outlook Express Paramétrer le logiciel Créer un compte.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 6 Support de cours rédigé par Bernard COFFIN Université.
FACTORY systemes Module 5 Page 5-1 Les outils clients Wonderware FORMATION InSQL 7.0.
Initiation aux bases de données et à la programmation événementielle Outil de création des tables Support de TD rédigé par Bernard COFFIN Université Paris.
La création des données d’exemplaire pour un exemplarisateur Sudoc.
Description Formation à l ’utilisation de CIDEMIS Public Coordinateurs et catalogueurs du Sudoc Intervenants Raphaëlle Poveda Kattialyn Gossiaux La formation.
Chapitre 7 Résolution de noms NetBIOS à l'aide du service WINS Module S43 1.
Chapitre 6 Déploiement et gestion des logiciels à l'aide d'une stratégie de groupe Module S44.
Du panier à la commande client Créer un panier Identification Validation de la commande Paiement Formulaire de création de compte Etats de la commande.
Introduction à la Programmation Orientée Objet H.GATI.
SEMINAIRE DES ACTEURS DE LA FORMATION Dialogue Web Formation LOGNES 16 et 17 décembre 2013.
La création des données d’exemplaire pour un responsable de Centre Régional.
Formation à l’utilisation de K-Sup V5 février 2009 CRISI - COM.
INDICO. Usage Centralisé au CC pour tout l’IN2P3 Remplace Agenda Maker (CDS agenda) Fermeture de Agenda Maker le 10 décembre (reste en mode consultation)
Présentation du fonctionnement des « Dossiers partagés » dans la version de la Rentrée Scolaire 2012 Alexis OLLIER 11 juin 2012.
Les bases de données CINAHL
FACTORY systemes Module 10 Section 1 Page 10-3 Sauvegarde et transport d’une application FORMATION INTOUCH 7.0.
Convention de 2005 sur la protection et la promotion de la diversité des expressions culturelles RAPPORT PERIODIQUE Formulaire en ligne.
IFT359 – Programmation fonctionnelle Thème #8 Création de nouvelles formes syntaxiques 1.
Prochaine évolution de nos modèles bibliographiques : FRBR-LRM Pat Riva Présidente, FRBR Consolidation Editorial Group Séminaire.
Conférence préparatoire aux examens intrasemestriels.
Orange Solidarité – association loi de 1901 Atelier 3 Les fonctions avancées de Word pour un CV « original » Se servir de Word pour produire des documents.
Créer un SmartArt Les graphiques SmartArt permettent de communiquer visuellement de l'information. Il peut s'agir de listes ou de diagrammes simples, mais.
FORMATIONENT/SVT Saint Orens Vendredi 15 novembre 2013.
Chapitre 9 Gestion des maîtres d'opérations
INSCRIPTIONS SPORTIVES
1 Initiation aux bases de données et à la programmation événementielle Construction d’un état Support de TD rédigé par Bernard COFFIN Université Paris.
Développement d’application avec base de données Semaine 2: Requête avec l’Entity Data Model Automne 2015.
Protection contre les découverts La protection contre les découverts est un outil permettant au client de respecter ses paiements et de détenir les fonds.
Persistance en bases de données O.Legrand G. Seront.
Colloque LCG France14-15 mars SURVEILLANCE ET GESTION D’INCIDENTS Cécile Barbier (LAPP)
Développement d’application avec base de données Semaine 1 : Présentation d’Entity Framework Automne 2015.
Persistance des données O.Legrand. Persistance developer.android.com/guide/topics/data/data-storage.htmll Plusieurs moyens sur le mobile: –Système de.
Transcription de la présentation:

Développement d’application avec base de données Semaine 9 : Code First avec Entité Framework Automne 2015 Tous le matériel provient de :

Introduction

 Code First pour une nouvelle base de données  Annotations de données  Migrations Code First  Définir les propriétés DbSet Plan de présentation

 Ce scénario inclut le ciblage d'une base de données qui n'existe pas et qui sera créée par Code First, ou d'une base de données vide à laquelle Code First ajoutera de nouvelles tables.  Code First vous permet de définir votre modèle à l'aide de classes C# ou VB.Net.  Une configuration supplémentaire peut éventuellement être effectuée à l'aide d'attributs sur vos classes et propriétés ou en utilisant une API Fluent. Code First pour une nouvelle base de données

 Pour l’instant, nous allons créer un ADO.NET Entity Data Model avec un Modèle Vide Code First.  Par défaut, la base de données sera local. Nous pourrions modifier la chaîne de connexion de l’App.config…mais hors de question que vous donnes accès à mon serveur en Code First  Si vous voulez utiliser code First à partir d’une base de données existante, vous n’avez qu’à sélectionner la dernière option. Code First pour une nouvelle base de données

 Ensuite, nous allons ajouter des classes pour les entités suivantes : Code First pour une nouvelle base de données

 Maintenant il est temps de définir un contexte dérivé, qui représente une session de base de données, permettant d'interroger et d'enregistrer des données.  Vous définissez un contexte qui dérive de System.Data.Entity.DbContext et expose un DbSet typé pour chaque classe dans le modèle. Code First pour une nouvelle base de données *On aurait pu définir seulement une propriété set.

 Lire et écrire des données Code First pour une nouvelle base de données

 Où sont mes données ?  Par convention DbContext a créé une base de données pour vous.  Si une instance SQL Express locale est disponible, Code First a créé la base de données sur cette instance.  Si SQL Express n'est pas disponible, Code First utilise la base de données LocalDbLocalDb  La base de données est nommée d'après le nom complet du contexte dérivé, dans ce cas CodeFirstNewDatabaseSample.BloggingContext  Il s'agit uniquement des conventions utilisées par défaut et il existe différentes méthodes pour modifier la base de données utilisée par Code First. Code First pour une nouvelle base de données

 Traitement des modifications de modèle  Le code généré automatiquement indique que vous devez ajouter une colonne Url, qui contient les données de chaîne, à la table dbo.Blogs. Le cas échéant, modifiez le code généré automatiquement. Cela n'est pas nécessaire dans ce cas.  namespace CodeFirstNewDatabaseSample.Migrations { using System; using System.Data.Entity.Migrations; public partial class AddUrl : DbMigration { public override void Up() { AddColumn("dbo.Blogs", "Url", c => c.String()); } public override void Down() { DropColumn("dbo.Blogs", "Url"); } } }  Exécutez la commande Update-Database dans la console du gestionnaire de package. Cette commande applique les migrations en attente à la base de données. La migration InitialCreate a déjà été appliquée. Par conséquent, Migrations applique uniquement la nouvelle migration AddUrl. Code First pour une nouvelle base de données

 Jusqu'à présent vous avez laissé Entity Framework détecter le modèle à l'aide des conventions utilisées par défaut. Cependant, il peut arriver que les classes ne respectent pas les conventions et vous devez être en mesure d'effectuer d'autres tâches de configuration. Il existe deux options à cet effet. Vous allez découvrir les annotations de données dans cette section et l'API Fluent dans la section suivante. Annotations de données

 Clé  Par convention on utilise ID dans le nom de la clé.  Autrement, on utilise l’annotation [Key] Annotations de données

 Obligatoire  L'annotation Required indique à Entity Framework qu'une propriété spécifique est requise.  Le fait d'ajouter Required à la propriété Title force Entity Framework (et MVC) à vérifier que la propriété contient des données. Annotations de données [Required] public string Title { get; set; } L'attribut Required affecte la base de données générée en transformant la propriété mappée en propriété non-nullable. Notez que le champ Titre est devenu « not null ».

 NotMapped  Une convention Code First stipule que chaque propriété qui est d'un type de données pris en charge doit être représentée dans la base de données. Mais ce n'est pas toujours le cas dans vos applications. Par exemple, vous pouvez disposer d'une propriété dans la classe Blog qui crée un code basé sur les champs Title et BloggerName. Annotations de données

 ComplexType  Il n'est pas rare de décrire vos entités de domaine sur un jeu de classes et de superposer ces classes pour décrire une entité complète. Par exemple, ajoutez une classe appelée BlogDetails à votre modèle et lié la à la classe Blog (public BlogDetails BlogDetail { get; set; }). Annotations de données

 ComplexType  Notez que BlogDetails n'a aucune propriété de type de clé. Annotations de données

 DatabaseGenerated  Une des fonctionnalités intéressante d'une base de données est la possibilité de disposer de propriétés calculées. Si vous mappez les classes Code First à des tables qui contiennent des colonnes calculées, vous ne souhaitez pas qu'Entity Framework mette à jour ces colonnes. Cependant, vous souhaitez qu'Entity Framework retourne ces valeurs de la base de données après que vous avez inséré ou mis à jour les données.  Utilisez l'annotation DatabaseGenerated pour marquer ces propriétés dans la classe avec l'énumération Computed. None et Identity constituent d'autres enums. Annotations de données

 InverseProperty et ForeignKey  Il est possible de définir sur quel champs la clé étrangère sera utilisée. Annotations de données

 NotMapped  Une convention Code First stipule que chaque propriété qui est d'un type de données pris en charge doit être représentée dans la base de données. Mais ce n'est pas toujours le cas dans vos applications. Par exemple, vous pouvez disposer d'une propriété dans la classe Blog qui crée un code basé sur les champs Title et BloggerName. Annotations de données

 NotMapped  Une convention Code First stipule que chaque propriété qui est d'un type de données pris en charge doit être représentée dans la base de données. Mais ce n'est pas toujours le cas dans vos applications. Par exemple, vous pouvez disposer d'une propriété dans la classe Blog qui crée un code basé sur les champs Title et BloggerName. Annotations de données

 NotMapped  Une convention Code First stipule que chaque propriété qui est d'un type de données pris en charge doit être représentée dans la base de données. Mais ce n'est pas toujours le cas dans vos applications. Par exemple, vous pouvez disposer d'une propriété dans la classe Blog qui crée un code basé sur les champs Title et BloggerName. Annotations de données

 NotMapped  Une convention Code First stipule que chaque propriété qui est d'un type de données pris en charge doit être représentée dans la base de données. Mais ce n'est pas toujours le cas dans vos applications. Par exemple, vous pouvez disposer d'une propriété dans la classe Blog qui crée un code basé sur les champs Title et BloggerName. Annotations de données

 Modifications de modèle  Modifiez votre modèle, ajoutez une propriété Url à la classe Blog :  public class Blog { public int BlogId { get; set; } public string Name { get; set; } public string Url { get; set; } public virtual List Posts { get; set; } }  Si vous réexécutez l'application, vous obtenez une exception InvalidOperationException qui indique que le modèle de sauvegarde du contexte « BlogContext » a changé depuis la création de la base de données. Envisagez d'utiliser Migrations Code First pour mettre à jour la base de données ( Migrations Code First

 Traitement des modifications de modèle  La première étape consiste à activer Migrations Code First pour BloggingContext.  Outils -> Gestionnaire de package de bibliothèque -> Console Gestionnaire de package  Exécutez la commande Enable-Migrations dans la console du gestionnaire de package.  Un dossier Migrations a été ajouté au projet, qui contient deux éléments :  Configuration.cs – Ce fichier contient les paramètres qui seront utilisés par Migrations pour migrer BloggingContext. Aucune modification n'est nécessaire pour effectuer cette procédure pas à pas. Mais vous pouvez spécifier les données de départ, inscrire des fournisseurs pour d'autres bases de données, modifier l'espace de noms dans lequel les migrations sont générées, etc., dans ce fichier.  _InitialCreate.cs – Il s'agit de la première migration. Elle représente les modifications qui ont déjà été appliquées à la base de données pour la faire passer d'une base de données vide à une base de données qui inclut les tables Blogs et Posts. Bien que vous ayez laissé Code First créer automatiquement ces tables, maintenant que vous avez opté pour Migrations, elles ont été converties en une migration. Code First a également enregistré dans la base de données locale que cette Migration a déjà été appliquée. L'horodateur sur le nom de fichier est utilisé à des fins de tri. Migrations Code First

 Traitement des modifications de modèle  Migrations Code First dispose de deux commandes principales avec lesquelles vous allez vous familiariser.  Add-Migration génère un modèle automatique de la migration suivante en fonction des modifications apportées à votre modèle depuis la création de la dernière migration.  Update-Database applique les migrations en attente à la base de données.  Vous devez générer un modèle automatique de migration pour prendre soin de la nouvelle propriété URL que vous avez ajoutée. La commande Add-Migrationvous permet de donner un nom à ces migrations. Appelez les vôtres AddBlogUrl.  Exécutez la commande Add-Migration AddBlogUrl dans la console du gestionnaire de package.  Le dossier Migrations contient une nouvelle migration AddBlogUrl. Le nom de fichier de migration contient le préfixe d'un horodateur pour faciliter le tri.  Exécutez la commande Update-Database dans la console du gestionnaire de package. Migrations Code First

 Faite les exercices. Exercice

Questions?