EF5 Code de la Première Modification d'Un Type de Colonne Avec les Migrations

Je suis nouveau sur EF5 le Premier Code et je suis à bricoler avec une preuve de concept avant de se lancer dans un projet au travail.

J'ai d'abord créé un modèle qui ressemblait à

public class Person {
  public int Id { get; set; }
  public string FirstName { get; set;}
  public string Surname {get;set;}
  public string Location {get;set;}
}

Et j'ai ajouté un peu d'enregistrements à l'aide d'une petite application MVC j'ai collé sur le dessus.

Maintenant, je veux changer l'Emplacement de la colonne à un enum, quelque chose comme:

public class Person {
  public int Id { get; set; }
  public string FirstName { get; set;}
  public string Surname {get;set;}
  public Locations Location {get;set;}
}

public enum Locations {
  London = 1,
  Edinburgh = 2,
  Cardiff = 3
}

Quand j'ajoute la nouvelle migration-je obtenir:

AlterColumn("dbo.People", "Location", c => c.Int(nullable: false));

mais quand je lance la mise à jour de la base de données, j'obtiens une erreur

Conversion failed when converting the nvarchar value 'London' to data type int.

Est-il un moyen dans la migration de tronquer la table avant l'exécution de l'instruction alter?

Je sais que je peux ouvrir la base de données manuellement et de le faire, mais est-il une façon plus intelligente?

Je vous suggère, pour les développeurs, dans des positions similaires de voir si la conversion est pris en charge automatiquement par Entity Framework avant de suivre certaines des réponses sur cette page. Par exemple, je trouve qu'il gère la conversion entre une chaîne et un nombre décimal et d'en revenir sans l'aide de moi - la migration qui ajoutent de la Migration généré fonctionne très bien. De toute évidence, l'essayer sur un local/base de données de test avant de l'appliquer à la production!

OriginalL'auteur Nick | 2013-02-12