2012-05-24 4 views
10

J'ai ma base de données déjà définie, je veux ajouter un nouveau champ au modèle, une nouvelle colonne à la table, est-il un moyen que je peux le faire sans perdre toutes mes données? Normalement, si vous supprimez le DB il recréera tout automatiquement mais je ne veux pas perdre les données. J'utilise SQL Server 2008 comme base de données.EF 4.1 Code d'abord - ajouter une colonne

+0

probablement en double de http://stackoverflow.com/questions/5656604/updating-database-schema-with-entity-framework-code-first –

Répondre

9

Vous devrez utiliser les migrations EF pour ajouter la nouvelle colonne à votre base de données. Vous pouvez en savoir plus sur EF Migrations here et here.

+0

Documentation utile, merci! +1 – ChaseHardin

2

Si vous utilisez d'abord le code, j'ai toujours ajouté manuellement la colonne à la base de données dans de telles situations. Malheureusement, il n'existe pas de moyen simple d'automatiser les mises à jour incrémentielles de modèles avec Code First.

Par exemple, l'un des propres erreurs de code EF même d'abord spécifier la mise à jour manuelle comme la meilleure option:

Le modèle soutenant le contexte de votre contexte »a changé depuis la base de données a été créée. Supprimez/mettez à jour manuellement la base de données ou appelez Database SetInitializer avec une instance IDatabaseInitializer. Par exemple, la stratégie DropCreateDatabaseIfModelChanges va automatiquement supprimer et recréer la base de données, et l'ensemencer éventuellement avec de nouvelles données.

Questions connexes