J'utilise Windows Azure et j'essaie de publier mon application MVC3. La case à cocher Exécuter la migration du code en premier dans le panneau des paramètres de l'application web Publier est grisée. Quelles modifications dois-je apporter pour pouvoir l'activer ?
Réponses
Trop de publicités?Je pense que vous voyez le message suivant "Execute Code First Migration" désactivé lorsque vous essayez de publier votre application MVC :
Ceci est potentiellement dû au fait que vous n'avez pas écrit tout le code pour la migration du code dans votre application et que la configuration de la base de données dans votre web.config est incorrecte ou inexistante, comme décrit ci-dessus. aquí .
Afin d'activer la migration de code, vous devez avoir une base de données configurée (dans le cas de Windows Azure, vous devez fournir des informations sur la base de données SQL dans le fichier web.config) dans le fichier web.config et une classe complète est écrite sur la façon dont la migration de code se produira en fonction de votre modèle. Ici est un exemple de la manière d'y parvenir.
http://msdn.microsoft.com/en-us/library/dd394698#efcfmigrations
Je suppose que vous avez déjà un modèle Entity Framework dans votre base de données (si ce n'est pas le cas, vous devez lire un peu, la réponse de @AvkashChauhan serait en effet un bon point de départ).
Toutefois, si vous disposez d'un modèle et de toutes les configurations comme :
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new YourEntityMap());
}
et tous les mappages d'entités comme :
public class YourEntityMap : EntityTypeConfiguration<YourEntity>
{
public YourEntityMap()
{
this.HasKey(t => t.Id);
}
}
et que la case à cocher n'est toujours pas activée, vous pouvez suivre les étapes suivantes :
Aller à Tools
> NuGet Package Manager
> Package Manager Console
Puis, dans la console, écrivez
Enable-Migrations -ContextTypeName Company.Models.YourDevContext
où Company.Models.YourDevContext
est votre contexte de base de données (cherchez une classe qui hérite de DbContext
doit être le même que celui qui a OnModelCreating
surcharge).
après avoir exécuté la commande, vous devriez obtenir quelque chose comme
À ce stade, vous devriez avoir Migrations
dossier ajouté à la solution Pour en savoir plus sur la manière de gérer les migrations, cliquez ici
J'espère que cela vous fera gagner du temps.