Bonjour,
J'ai cree les,classes VM_Auteur, E_bibliothequeContext et e_bibliothequeInitializer pour initialiser une BDD d'une application Asp.MVC
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 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations; namespace e_bibliotheque_MVC.Models { public class VM_Auteur { [Key] public int Id_Auteur { get; set; } public string Prenom { get; set; } public string Nom { get; set; } public DateTime DateDeNaissance { get; set; } } }
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 using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Web; namespace e_bibliotheque_MVC.Models { public class E_bibliothequeContext:DbContext { public E_bibliothequeContext() : base("name = e_BibliothequeDB") { } //la table Auteurs en BDD sera constituée d'un ensemble d'objets VM_Auteur public DbSet<VM_Auteur>Auteurs { get; set; } } }J'ai également modifié les fichiers
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 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.Entity; namespace e_bibliotheque_MVC.Models { //la classe DropCreateDatabaseIfModelChanges: si le model est modifié(on ajoute un produit, on le modifie, on le supprime) //la base de données est supprimée et recréée public class e_bibliotheque_Initializer : DropCreateDatabaseIfModelChanges<E_bibliothequeContext> { protected override void Seed(E_bibliothequeContext context) { base.Seed(context); var ListeAuteurs = new List<VM_Auteur> { new VM_Auteur() { // Id_Auteur=1, Prenom = "Alexandra", Nom = "Lapierre", DateDeNaissance = new DateTime(1955, 11, 14) }, new VM_Auteur() { Prenom = "Amélie", Nom = "Nothomb", DateDeNaissance = new DateTime(1966, 07, 09) }, new VM_Auteur() { Prenom = "Gaelle", Nom = "Josse", DateDeNaissance = new DateTime(1960, 09,22) } }; ListeAuteurs.ForEach(a =>context.Auteurs.Add(a)); context.SaveChanges(); }//fin de mehode Seed }//fin de classe }//fin de Namespace
-global asax en ajoutant cette instruction
-web.config en ajoutant lasection connectionString
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Database.SetInitializer<E_bibliothequeContext>(new e_bibliotheque_Initializer());
Cependant au lancement de l'appli, le nom de la table de la base de données est VM_auteur et non Auteurs comme demandé dans la classe E_bibliothequeContext.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <configuration> <configSections> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <connectionStrings> <!--Data Source = nom du serveur--> <add name="e_bibliothequeDB" connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=e_BibliothequeDB;Integrated Security=True" providerName="System.Data.SqlClient"/> </connectionStrings>
De plus, si j'initialize la BDD avec deux elements , les auteurs apparaissent bien mais si j'ajoute un objet VM_Auteur à la ListeAuteur de la classe Initializer, le nouvel élément ne s'ajoute pas en BDD.
Merci beaucoup à vous de m'aider à comprendre ce dysfonctionnement.
Bien cordialement.
new_wave
Partager