diff --git a/p08_BDD_EntityFramework/ex_042_014_OneToMany_dataAnnotations/ReadMe.md b/p08_BDD_EntityFramework/ex_042_014_OneToMany_dataAnnotations/ReadMe.md index d8c2fdb..8d76642 100644 --- a/p08_BDD_EntityFramework/ex_042_014_OneToMany_dataAnnotations/ReadMe.md +++ b/p08_BDD_EntityFramework/ex_042_014_OneToMany_dataAnnotations/ReadMe.md @@ -60,6 +60,8 @@ public Album Album get; set; } ``` + + ### La classe ```AlbumDBEntities``` @@ -185,10 +187,10 @@ using (AlbumDBEntities db = new AlbumDBEntities()) ``` ## Comment exécuter cet exemple ? Pour tester cette application, n'oubliez pas les commandes comme présentées dans l'exemple ex_041_001 : pour générer l'exemple, il vous faut d'abord préparer les migrations et les tables. - * Ouvrez la *Console du Gestionnaire de package* sous Windows ou le *Terminal* sous MacOSX, pour cela, dirigez-vous dans le menu *Outils*, puis *Gestionnaire de package NuGet*, puis *Console du Gestionnaire de package*. + * Ouvrez la *Console du Gestionnaire de package* sous Windows (pour cela, dirigez-vous dans le menu *Outils*, puis *Gestionnaire de package NuGet*, puis *Console du Gestionnaire de package*) ou le *Terminal* sous MacOSX. * Dans la console que vous venez d'ouvrir, déplacez-vous dans le dossier du projet .NET Core, ici : ``` -cd .\p08_BDD_EntityFramework\ex_042_012_OneToOne_conventions +cd .\p08_BDD_EntityFramework\ex_042_014_OneToMany_dataAnnotations ``` *Note*: si vous n'avez pas installé correctement EntityFrameworkCore, il vous faudra peut-être utiliser également : @@ -198,56 +200,129 @@ cd .\p08_BDD_EntityFramework\ex_042_012_OneToOne_conventions * ```dotnet tool install --global dotnet-ef --version 3.0.0``` si vous vous utiliser spécifiquement .NET Core 3.0. - * Migration : + * Migration : vous devez préciser la classe fille de ```DbContext``` à utiliser : soit ```AlbumDBEntities```, soit ```StubbedContext```. ``` -dotnet ef migrations add ex_042_012 --context StubbedContext +dotnet ef migrations add ex_042_014 --context StubbedContext ``` * Création de la table : ``` dotnet ef database update --context StubbedContext ``` * Génération et exécution -Vous pouvez maintenant générer et exécuter l'exemple **ex_042_012_OneToOne_conventions**. +Vous pouvez maintenant générer et exécuter l'exemple **ex_042_014_OneToMany_dataAnnotations**. - * Le résultat de l'exécution va ressembler à : + * Le résultat de l'exécution va ressembler à (si vous avez utilisé ```StubbedContext```) : ``` -Contenu de la base (nounours) : - 1: Chewbacca (27/05/1977, 1234567 poils), LastModified: 20/01/2020 - 2: Yoda (21/05/1980, 3 poils), LastModified: 21/05/1980 - 3: Ewok (25/05/1983, 3456789 poils), LastModified: 25/05/1983 -Contenu de la base (carnets de santé) : - 1 : carnet de Chewbacca, modifié la dernière fois le 20/01/2020 - 2 : carnet de Yoda, modifié la dernière fois le 21/05/1980 - 3 : carnet de Ewok, modifié la dernière fois le 25/05/1983 - -Ajout d'un nounours et de son carnet de santé - -Contenu de la base (nounours) : - 1: Chewbacca (27/05/1977, 1234567 poils), LastModified: 20/01/2020 - 2: Yoda (21/05/1980, 3 poils), LastModified: 21/05/1980 - 3: Ewok (25/05/1983, 3456789 poils), LastModified: 25/05/1983 - 4: Porg (19/07/2017, 123 poils), LastModified: 20/01/2020 -Contenu de la base (carnets de santé) : - 1 : carnet de Chewbacca, modifié la dernière fois le 20/01/2020 - 2 : carnet de Yoda, modifié la dernière fois le 21/05/1980 - 3 : carnet de Ewok, modifié la dernière fois le 25/05/1983 - 4 : carnet de Porg, modifié la dernière fois le 20/01/2020 +Albums : + 1: Kind of Blue (sorti le : 17/08/1959) + So What + Freddie Freeloader + Blue in Green + All Blues + Flamenco Sketches + 2: Dialogue (sorti le : 01/09/1965) + Catta + Idle While + Les Noirs Marchant + Dialogue + Ghetto Lights + Jasper + +Morceaux : + 1: So What (album : Kind of Blue) + 2: Freddie Freeloader (album : Kind of Blue) + 3: Blue in Green (album : Kind of Blue) + 4: All Blues (album : Kind of Blue) + 5: Flamenco Sketches (album : Kind of Blue) + 6: Catta (album : Dialogue) + 7: Idle While (album : Dialogue) + 8: Les Noirs Marchant (album : Dialogue) + 9: Dialogue (album : Dialogue) + 10: Ghetto Lights (album : Dialogue) + 11: Jasper (album : Dialogue) + +Ajout d'un album et 6 morceaux... + +Albums : + 1: Kind of Blue (sorti le : 17/08/1959) + So What + Freddie Freeloader + Blue in Green + All Blues + Flamenco Sketches + 2: Dialogue (sorti le : 01/09/1965) + Catta + Idle While + Les Noirs Marchant + Dialogue + Ghetto Lights + Jasper + 3: Captain Marvel (sorti le : 03/03/1972) + La Fiesta + Five Hundred Miles High + Captain Marvel + Time's Lie + Lush Life + Day Waves + +Morceaux : + 1: So What (album : Kind of Blue) + 2: Freddie Freeloader (album : Kind of Blue) + 3: Blue in Green (album : Kind of Blue) + 4: All Blues (album : Kind of Blue) + 5: Flamenco Sketches (album : Kind of Blue) + 6: Catta (album : Dialogue) + 7: Idle While (album : Dialogue) + 8: Les Noirs Marchant (album : Dialogue) + 9: Dialogue (album : Dialogue) + 10: Ghetto Lights (album : Dialogue) + 11: Jasper (album : Dialogue) + 12: La Fiesta (album : Captain Marvel) + 13: Five Hundred Miles High (album : Captain Marvel) + 14: Captain Marvel (album : Captain Marvel) + 15: Time's Lie (album : Captain Marvel) + 16: Lush Life (album : Captain Marvel) + 17: Day Waves (album : Captain Marvel) ``` -*Note : l'identifiant du dernier ```Nounours``` sera vraisemblablement différent puisqu'il est créé par la base lors de l'insertion.* ## Comment exécuter cet exemple sans le stub ? -Il suffit de faire exactement comme dans le paragraphe précédent, mais en choisissant le contexte ```NounoursDBEntities``` à la place de ```StubbedContext``` : +Il suffit de faire exactement comme dans le paragraphe précédent, mais en choisissant le contexte ```AlbumDBEntities``` à la place de ```StubbedContext``` : +``` +dotnet ef migrations add ex_042_014 --context AlbumDBEntities +dotnet ef database update --context AlbumDBEntities +``` +Lors de l'exécution, le résultat sera évidemment différent puisqu'il n'y aura pas les 2 albums du stub. +Il pourra ressembler à : ``` -dotnet ef migrations add ex_042_012 --context NounoursDBEntities -dotnet ef database update --context NounoursDBEntities +Albums : + +Morceaux : + +Ajout d'un album et 6 morceaux... + +Albums : + 1: Captain Marvel (sorti le : 03/03/1972) + La Fiesta + Five Hundred Miles High + Captain Marvel + Time's Lie + Lush Life + Day Waves + +Morceaux : + 1: La Fiesta (album : Captain Marvel) + 2: Five Hundred Miles High (album : Captain Marvel) + 3: Captain Marvel (album : Captain Marvel) + 4: Time's Lie (album : Captain Marvel) + 5: Lush Life (album : Captain Marvel) + 6: Day Waves (album : Captain Marvel) ``` -Lors de l'exécution, le résultat sera évidemment différent puisqu'il n'y aura pas les 3 nounours du stub. ## Comment vérifier quelles base et tables ont été créées et leur contenu ? Pour vérifier le contenu de votre base SQLite, vous pouvez utiliser le programme *DB Browser* : * Rendez-vous sur la page : https://sqlitebrowser.org/dl/ et téléchargez le programme *DB Browser*. * Lancez *DB Browser for SQLite* -* Glissez-déposez au milieu de la fenêtre de *DB Browser for SQLite* le fichier *ex_042_012_OneToOne_conventions.Nounours.db* qui a été généré par l'exécution du programme et qui se trouve près de *ex_042_012_OneToOne_conventions.csproj*. +* Glissez-déposez au milieu de la fenêtre de *DB Browser for SQLite* le fichier *ex_042_014_OneToMany_dataAnnotations.Nounours.db* qui a été généré par l'exécution du programme et qui se trouve près de *ex_042_014_OneToMany_dataAnnotations.csproj*. ![DB Browser for SQLite](./readme_files/dbbrowser01.png) * Choisissez ensuite l'onglet *Parcourir les données* * Observez les résultats obtenus des deux tables diff --git a/p08_BDD_EntityFramework/ex_042_014_OneToMany_dataAnnotations/readme_files/dbbrowser01.png b/p08_BDD_EntityFramework/ex_042_014_OneToMany_dataAnnotations/readme_files/dbbrowser01.png new file mode 100644 index 0000000..9ad4482 Binary files /dev/null and b/p08_BDD_EntityFramework/ex_042_014_OneToMany_dataAnnotations/readme_files/dbbrowser01.png differ diff --git a/p08_BDD_EntityFramework/ex_042_014_OneToMany_dataAnnotations/readme_files/dbbrowser02.png b/p08_BDD_EntityFramework/ex_042_014_OneToMany_dataAnnotations/readme_files/dbbrowser02.png new file mode 100644 index 0000000..ddd4032 Binary files /dev/null and b/p08_BDD_EntityFramework/ex_042_014_OneToMany_dataAnnotations/readme_files/dbbrowser02.png differ diff --git a/p08_BDD_EntityFramework/ex_042_014_OneToMany_dataAnnotations/readme_files/dbbrowser03.png b/p08_BDD_EntityFramework/ex_042_014_OneToMany_dataAnnotations/readme_files/dbbrowser03.png new file mode 100644 index 0000000..1420758 Binary files /dev/null and b/p08_BDD_EntityFramework/ex_042_014_OneToMany_dataAnnotations/readme_files/dbbrowser03.png differ