Bonjour,
Je suis complétement débutant en C#, pour une formation que je fait, je dois créer un appli en mode console pour gérer une bibliothèque, en utilisant entity framework et une bdd. Je bloque actuellement sur le menu, qui s'affiche mais se referme quand je sélectionne qq chose...
Je me permets de mettre tout le code (inspiré de ce que l'on a fait en cours). Je pense que cela ne doit pas être grand chose,mais il me semble que tout est écrit comme il faut...
Donc, si je sélectionne 1, 2 ou 3, la fenêtre se referme sans rien afficher...

le code menu.cs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace bibliotheque
{
    class MyMenu
    {
        static readonly Dictionary<int, string> Menu = new Dictionary<int, string>
        {
            {  0, "Quitter" },
            {  1, "Lister les personnes" },
            {  2, "Ajouter une personne" },
            {  3, "Modifier une personne" },
            {  4, "Supprimer une personne" },
        };
 
        static readonly Dictionary<int, KeyValuePair<string, string>> Menu2 = new Dictionary<int, KeyValuePair<string, string>>()
        {
            {  0, new KeyValuePair<string, string>("Quitter", "" )},
            {  1, new KeyValuePair<string, string>("Lister les personnes", "ListPersons")},
            {  2, new KeyValuePair<string, string>("Ajouter une personne", "AddPerson")},
            {  3, new KeyValuePair<string, string>("Modifier une personne", "UpdatePerson")},
            {  4, new KeyValuePair<string, string>("Supprimer une personne", "RemovePerson")},
        };
 
        static void ShowMenu()
        {
            do
            {
                Console.Clear();
                switch (DisplayMenu())
                {
                    case 0:
                        return;
                    case 1:
                        ShowTitle(1);
                        ListPersons();
                        Console.ReadLine();
                        break;
                    case 2:
                        ShowTitle(2);
                        AddPerson();
                        Console.ReadLine();
                        break;
                    case 3:
                        ShowTitle(3);
                        UpdatePerson();
                        Console.ReadLine();
                        break;
                    case 4:
                        ShowTitle(4);
                        RemovePerson();
                        Console.ReadLine();
                        break;
                }
 
            } while (true);
        }
 
        public static void ShowMenu2()
        {
            foreach (var item in Menu2)
            {
                Console.WriteLine($"{ item.Key } - { item.Value.Key }");
            }
 
            int.TryParse(Console.ReadLine(), out int choix);
 
            //MethodInfo methodInfo = EF.MyMenu.;
        }
 
        private static void UpdatePerson()
        {
            int idUsager = ChoosePersonById("Choisir la personne à modifier : ");
            if (idUsager == 0) return;
 
            using (var dbContext = new Model1Container())
            {
                var Usager = dbContext.UsagerSet.Find(idUsager);
                if (Usager is null)
                {
                    Console.WriteLine("La personne n'existe pas !");
                    return;
                };
 
                Console.WriteLine("Saisir les nouvelles valeurs ou laisser vide pour ne pas modifier");
                var newFirstName = GetInput($"Prénom ({ Usager.Nom }) : ");
                var newLastName = GetInput($"Nom ({ Usager.Prenom }) : ");
 
                // si l'utilisateur saisit une valeur, on met à jour la variable person
                if (newFirstName.Trim(' ') != "") Usager.Nom = newFirstName.Trim(' ');
                if (newLastName.Trim(' ') != "") Usager.Prenom = newLastName.Trim(' ');
 
                dbContext.SaveChanges();
 
                Console.WriteLine("Personne modifiée avec succès");
            }
        }
 
        private static void RemovePerson()
        {
            int idUsager = ChoosePersonById("Choisir la personne à supprimer : ");
            if (idUsager == 0) return;
 
            using (var dbContext = new Model1Container())
            {
                var person = dbContext.UsagerSet.Find(idUsager);
                if (person is null)
                {
                    Console.WriteLine("La personne n'existe pas !");
                    return;
                };
 
                dbContext.UsagerSet.Remove(person);
                dbContext.SaveChanges();
                Console.WriteLine("Personne supprimée avec succès ;)");
            }
        }
 
        private static void AddPerson()
        {
            var prenom = GetInput("Prénom : ");
            var nom = GetInput("Nom : ");
            var  telephone = GetInput("téléphone : ");
 
            using (Model1Container dbContext = new Model1Container())
            {
                dbContext.UsagerSet.Add(new Usager
                {
                    Nom = nom,
                    Prenom = prenom,
                    Telephone = telephone,
                });
 
                dbContext.SaveChanges();
 
                Console.WriteLine("Personne créée avec succès");
            }
        }
 
        private static void ListPersons()
        {
            using (var dbContext = new Model1Container())
            {
                foreach (var person in dbContext.UsagerSet.ToList())
                {
                    Console.WriteLine($"{ person.Id } - { person.Nom } { person.Prenom } { person.Telephone }");
                }
            }
        }
 
        private static int ChoosePersonById(string msg)
        {
            ListPersons();
            int.TryParse(GetInput(msg), out int idUsager);
            return idUsager;
        }
 
        private static int DisplayMenu()
        {
            foreach (var item in Menu)
            {
                Console.WriteLine($"{ item.Key } - { item.Value }");
            }
 
            int.TryParse(Console.ReadLine(), out int choix);
 
            return choix;
        }
 
        private static void ShowTitle(int index)
        {
            Console.Clear();
            Console.WriteLine(Menu[index]);
            Console.WriteLine("-------");
        }
 
        private static string GetInput(string msg)
        {
            Console.WriteLine(msg);
            return Console.ReadLine();
        }
 
        private static void CreateSample()
        {
            using (Model1Container dbContext = new Model1Container())
            {
                //dbContext.Database.Create();
 
                dbContext.UsagerSet.Add(new Usager()
                {
                    Nom = "Martin",
                    Prenom = "Roger",
                    Telephone = "07872141",
                    Adresse = new Adresse()
                    {
                        Numero = 36,
                        Rue = "Quai des Orfèvres",
                        CodePostal = 75001,
                        Commune = "Paris"
                    }
                });
 
                dbContext.SaveChanges();
 
                foreach (var person in dbContext.UsagerSet.ToList())
                {
                    Console.WriteLine(person);
                }
            }
 
            Console.ReadLine();
        }
    }
}
Merci d'avance pour votre aide!
Cordialement