IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entity Framework Discussion :

CodeFirst: méthode Seed non exécutée


Sujet :

Entity Framework

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut CodeFirst: méthode Seed non exécutée
    Bonjour,
    lors de la création de ma base de données, je souhaite remplir certaines tables avec des données. J'ai donc créé un Initializer ainsi:
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        public class MediaInitializer : CreateDatabaseIfNotExists<MediaContext>
        {
            protected override void Seed(MediaContext context)
            {
                context.Supports.Add(new Support() { Description = "DVD" });
                context.Supports.Add(new Support() { Description = "Divx" });
     
                context.SaveChanges();
            }
        }
    et modifié mon context ainsi:
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        public class MediaContext : DbContext
        {
            private const string ConnectionString = @"server=.\SQLEXPRESS;database=Collectio-Test;trusted_connection=true";
            public MediaContext() : base(ConnectionString) 
            { 
                Database.SetInitializer <MediaContext>(new MediaInitializer());   
            }
    Mais la table Supports reste désespérément vide. La méthode Seed() n'est pas exécutée! Pourquoi ?

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut
    Il suffisait de rajouter dans la classe MediaContext this.Database.Initialize(false); .
    Pourtant, dans de nombreux exemples trouvés ici ou là, il était précisé que le Database.SetInitializer() suffisait à déclencher l'appel de la méthode Seed()...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/04/2013, 10h02
  2. Réponses: 2
    Dernier message: 21/09/2010, 13h20
  3. Non exécution d'une méthode repaint()
    Par Flophx dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 05/05/2006, 18h04
  4. [EJB] [JSP] Méthode EJB non reconnue dans jsp
    Par stago dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 06/07/2004, 09h52
  5. INCLUDE non exécuté
    Par Sadneth dans le forum ASP
    Réponses: 3
    Dernier message: 07/09/2003, 00h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo