user1235486
user1235486

Reputation: 51

EF 4.1 Code First Initialize my database

I'am using EF code first to buil my project. I use seed method to initialize data in my database, but only some class model data have been register in the database. I dont have any warning or problem. for exemple: 1) Does not

var categories = new List<Categorie>{ 
                new Categorie{Nom="Informatique"}, 
                new Categorie{Nom="Bien Etre"}, 
 };
            categories.ForEach(s => context.Categories.Add(s));
            context.SaveChanges(); 

Class model:

public class Categorie 
    { 
        public int CategorieID { get; set; }
        public string Nom { get; set; }
        public virtual ICollection<Cour> Cours { get; set; }
    }

2) Done

var coachs = new List<Coach>
            { 
new Coach{Nom="Guith",Prenom="Etienne", Login="etienneguith",Password="etienneguith",Profession="Neurologue",Cour="Medecine generale",Email="[email protected]",agenda=temp1},
new Coach{Nom="John",Prenom="Robert", Login="robertjohn",Password="robertjohn",Profession="Juge",Cour="Droit Penal",Email="[email protected]",agenda=temp2}, 
 };
        categories.ForEach(s => context.Categories.Add(s));
        context.SaveChanges(); 

Class Model

public class Coach
    {
        public int CoachID { get; set; }
        public string Nom { get; set; }
        public string Prenom { get; set; }
        public string Login { get; set; }
        public string Password { get; set; }
        public string Profession { get; set; }
        public string Cour { get; set; }
        public string Email { get; set; }
        public DateTime agenda { get; set; }


        public virtual ICollection<Session> Sessions { get; set; }

    }

Upvotes: 1

Views: 264

Answers (1)

Michael Hornfeck
Michael Hornfeck

Reputation: 1252

Looks like you are unintentionally iterating the categories collection twice.

var coachs = new List<Coach>
{ 
    new Coach{Nom="Guith",Prenom="Etienne", Login="etienneguith",Password="etienneguith",Profession="Neurologue",Cour="Medecine generale",Email="[email protected]",agenda=temp1},
    new Coach{Nom="John",Prenom="Robert", Login="robertjohn",Password="robertjohn",Profession="Juge",Cour="Droit Penal",Email="[email protected]",agenda=temp2}, 
};

categories.ForEach(s => context.Categories.Add(s));
context.SaveChanges(); 

Looks like it should be:

var coachs = new List<Coach>
{ 
    new Coach{Nom="Guith",Prenom="Etienne", Login="etienneguith",Password="etienneguith",Profession="Neurologue",Cour="Medecine generale",Email="[email protected]",agenda=temp1},
    new Coach{Nom="John",Prenom="Robert", Login="robertjohn",Password="robertjohn",Profession="Juge",Cour="Droit Penal",Email="[email protected]",agenda=temp2}, 
};

coachs.ForEach(s => context.Coachs.Add(s));
context.SaveChanges(); 

Upvotes: 3

Related Questions