2011-08-13 3 views
1

Existe-t-il un moyen d'ajouter une nouvelle entité à ma configuration Code First? La table est automatiquement ajoutée afin de ne pas avoir à mettre à jour ma base de données avec de nouvelles tables.Code EF4 Créer d'abord une nouvelle table

Répondre

2

vous pouvez ajouter

Database.SetInitializer(new DropCreateDatabaseIfModelChanges<YourDbContext>()); 

en vous r démarrage de l'application. Il va recréer la base de données pour vous si vous avez modifié votre configuration. Et si vous ne souhaitez pas supprimer et créer une base de données (Pour un développement incrémentiel), vous pouvez utiliser SqlMigrations. http://www.hanselman.com/blog/EntityFrameworkCodeFirstMigrationsAlphaNuGetPackageOfTheWeek10.aspx

+0

Un lien intéressant, merci. – Jeroen

+0

Y at-il quelque chose que je puisse faire pour éviter de perdre mes données déjà ajoutées? –

+0

@jonny_d vous pouvez utiliser les migrations EF –

0

De: http://blogs.msdn.com/b/adonet/archive/2010/12/06/ef-feature-ctp5-code-first-walkthrough.aspx

Définition d'une stratégie d'initialisation

Dans la section suivante, nous allons commencer à changer notre modèle qui à son tour signifie que le schéma de base de données doit changer. Actuellement, il n'y a pas de solution «prête à l'emploi» pour faire évoluer votre schéma existant. L'évolution de la base de données est quelque chose sur laquelle nous travaillons actuellement et un exemple de la direction que nous prenons est fourni dans un blog de design récent.

Il existe toutefois la possibilité d'exécuter une logique personnalisée pour initialiser la base de données la première fois qu'un contexte est utilisé dans un AppDomain. C'est pratique si vous souhaitez insérer des données de départ pour les tests, mais il est également utile de recréer la base de données si le modèle a changé. Dans CTP5 nous incluons quelques stratégies que vous pouvez brancher mais vous pouvez aussi écrire des stratégies personnalisées.

Ajouter une instruction à l'aide pour System.Data.Entity.Database en haut de Program.cs

using System.Data.Entity.Database; 

Pour la procédure pas à pas, nous voulons simplement laisser tomber et recréer la base de données chaque fois que le modèle a changé, donc au sommet de la méthode principale dans ma classe de programme, j'ai ajouté le code suivant

DbDatabase.SetInitializer<ProductContext>(
    new DropCreateDatabaseIfModelChanges<ProductContext>()); 
Questions connexes