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; }
    }
}
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
J'ai également modifié les fichiers
-global asax en ajoutant cette instruction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Database.SetInitializer<E_bibliothequeContext>(new e_bibliotheque_Initializer());
-web.config en ajoutant lasection connectionString
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>
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.

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