ended ex_042_014

EFCore3_Reforged
Marc CHEVALDONNE 6 years ago
parent 17b2858212
commit ad341cb1bd

@ -60,6 +60,8 @@ public Album Album
get; set;
}
```
<img src="./readme_files/ex_042_014_classDiagram2.svg"/>
### 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Loading…
Cancel
Save