TP GestionProduits
Partie 3: Entity Framework
Partie 3.1 : Mise en place
1. Dans la solution GestionProduits, créer un autre projet nommé « [Link] » de type
« Bibliothèque de classes (.Net Framework) ».
2. Ajouter les références entre les projets: Le projet [Link] doit référencer le projet
[Link]. Le projet [Link] doit référencer le projet [Link].
[Link]
[Link]
[Link]
[Link]
3. Installer Entity Framework.
Partie 3.2 : Implementation du Context
4. Créer une classe GPContext dans le projet [Link]
5. Ajouter l’heritage de DBContext
6. Ajoutez la balise suivante dans le fichier [Link] dans le Projet Console
<connectionStrings>
<add name=" GPConnection "
connectionString="Data Source=(localdb)\mssqllocaldb;
Initial Catalog=GestionProduitsDB;Integrated Security=true"
providerName="[Link]"/>
</connectionStrings>
1/4
7. Le constructeur de la classe GPcontext doit pointer vers la chaine de connexion présente
dans le fichier [Link]
8. Ajouter les DBSet nécessaires.
Partie 3.3 : Géneration de la BD
9. Faite une opération d’ajout dans l’application console et executer afin de générer la base
de données.
Partie 3.4 : Migrations
10. Ajouter la propriété public string Image { get; set; } à l’entité Product puis lancer
l’application. L’application nous renvoie cette exception:
11. Activer la migration dans le projet [Link] et exécuter les commandes qui permettent de
mettre à jour la base de données
12. Changer le nom de la propriété public string Image {get; set;} à public stringImageName
{get; set;}. Ajouter une migration nommé ModifyNameImag. Aller à la classe
Configuration dans le dossier Migrations et ajouter le code suivant dans la méthode Seed.
Exécuter la commande qui permet de mettre à jour la base de données.
[Link](
p => [Link], //Uniqueness property
new Category { Name = "Medicament" },
new Category { Name = "Vetement" },
new Category { Name = "Meuble" }
);
[Link]();
13. Restaurer le schéma de la base de données à l’état précédent.
2/4
Partie 3.5 : Type Complexe
14. Ajouter le Type Complexe “Address” dans le projet [Link].
namespace [Link]
{
public class Address
{
public string StreetAddress { get; set; }
public string City { get; set; }
}
}
15. Mettre à jour l’entité Chemical par le type complexe que nous venons de créer
Partie 3.6 : Annotations
16. Ajouter la référence “[Link]” au projet [Link]
17. Ajouter les différentes annotations qui nous permettent de configurer les entités comme
suit :
Dans la class Product:
○ La propriété Name doit être :
■ required
■ The user input string have the length 25 (max)
■ The property have length 50 (max)
■ An error message will be displayed if the rules are not respected.
○ La propriété Description doit être:
■ Multiline
○ La propriété Price doit être:
■ Currency
○ La propriété Quantity doit être:
■ Positive integer
○ La propriété DateProd doit être:
3/4
■ Displayed as “Production Date”
■ Valid Date
○ La propriété CategoryId doit être:
■ The foreign Key property to the Category entity.
Dans la class Provider :
○ La propriété Id doit être:
■ Key (Id is already a primary key By Convention)
○ La propriété Password doit être:
■ Password (hidden characters in the input)
■ Minimum length 8 characters
■ Required
○ La propriété ConfirmPassword doit être:
■ Required
■ Not mapped in the database
■ Password
■ Same value as “Password” property
○ La propriété Email doit être:
■ Email
■ Required
18. Mettre à jour la base de données en utilisant la migration
19. Lancer et tester en utilisant le projet console
4/4