Impossible de générer explicite de la migration (EF5) (migrations en cours)

Nous sommes à l'aide de Code-première migrations avec EF5 (localdb)\v11.0 (Vstudio 2012) et tout a fonctionné bien jusqu'à présent.

Cependant aujourd'hui j'avais besoin de créer un couple d'indices sur quelques tables et a couru dans des problèmes.

Premier je l'ai fait en PM:

PM> add-migration AddIdxToOutage
Scaffolding migration 'AddIdxToOutage'.

J'ai modifié le code dans le scaffolding migration:

public override void Up()
        {
            Sql(@"CREATE NONCLUSTERED INDEX [idx_WtgId_StartDateTime_EndDateTime] ON [dbo].[Outages]
(
    [WtgId] ASC,
    [StartDateTime] ASC,
    [EndDateTime] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]");
        }

J'ai mis à jour la base de données et le résultat a été ce:

PM> update-database -startupprojectname D3A.Data -force -verbose
Using StartUp project 'D3A.Data'.
Using NuGet project 'D3A.Data'.
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
Target database is: 'D3A.Data.StorageContext' (DataSource: (localdb)\v11.0, Provider: System.Data.SqlClient, Origin: Convention).
Applying code-based migrations: [201310301258520_AddIdxToOutage].
Applying code-based migration: 201310301258520_AddIdxToOutage.
CREATE NONCLUSTERED INDEX [idx_WtgId_StartDateTime_EndDateTime] ON [dbo].[Outages]
(
    [WtgId] ASC,
    [StartDateTime] ASC,
    [EndDateTime] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
[Inserting migration history record]
Running Seed method.

Idx a été créé sur la table et tout le monde était heureux.

Toutefois - lorsque j'ai créé le prochain indice, j'ai couru dans des problèmes. J'ai créé un vide tâche de migration comme

PM> add-migration AddIdxToState
Unable to generate an explicit migration because the following explicit migrations are pending: [201310301258520_AddIdxToOutage]. Apply the pending explicit migrations before attempting to generate a new explicit migration.

Pardon pour mon français, mais WT*?

Il semble y avoir aucun moyen de contourner cela. Je peux revenir à l'étape de la migration précédente plus de la première idx, ajouter le idx es de nouveau et c'est la même chose.

Pouvez-vous me dire ce que je suis en manque ici? Ce que je fais mal?

Edit:

Je pensais au départ que mon problème était à l'exécution de SQL brut sur la base de données/localdb, mais il semble que tout ce que je fais maintenant, s'arrête après le premier add-migration.

Je viens d'ajouter une nouvelle table de la base de données et c'est le std-résultat de PM Console:

PM> add-migration AddMyLoggerTable
Scaffolding migration 'AddMyLoggerTable'.
The Designer Code for this migration file includes a snapshot of your current Code First model. This snapshot is used to calculate the changes to your model when you scaffold the next migration. If you make additional changes to your model that you want to include in this migration, then you can re-scaffold it by running 'Add-Migration 201310301419063_AddMyLoggerTable' again.
PM> update-database -startupproject DongEnergy.D3A.Data -verbose
Using StartUp project 'D3A.Data'.
Using NuGet project 'D3A.Data'.
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
Target database is: 'D3A.Data.StorageContext' (DataSource: (localdb)\v11.0, Provider: System.Data.SqlClient, Origin: Convention).
Applying code-based migrations: [201310301419063_AddMyLoggerTable].
Applying code-based migration: 201310301419063_AddMyLoggerTable.
CREATE TABLE [dbo].[MyLoggerTable] (
    [id] [int] NOT NULL,
    [functionId] [int],
    [elapsedTime] [bigint],
    [noOfRecords] [int],
    [dateCreated] [datetime] DEFAULT getDate()
)
[Inserting migration history record]
Running Seed method.
PM> add-migration AddMyLoggerTableFunction
Unable to generate an explicit migration because the following explicit migrations are pending: [201310301419063_AddMyLoggerTable]. Apply the pending explicit migrations before attempting to generate a new explicit migration.

Avis comment je ajouter un nouveau, vide de migration de tâche, utilisez la CreateTable-méthode et qui ont été mis à jour dans la base de données. Mais quand j'ajoute une nouvelle étape de la migration, il se plaint de ce que la tâche était "engagé" à la base de données est toujours "en attente" - même si les deux migrationhistory et les objets de base de données ont été mises à jour.

Essayez: Revenir en arrière, de Supprimer de la migration et de le recréer. J'ai eu des problème avec le "vide" des migrations un couple de temps mais que truc simple a toujours fait.
eh bien, j'ai essayé ce. J'ai repris à l'étape de la migration /avant le/ la création d'index. Qui a bien fonctionné. Ensuite, j'ai ajouté la première étape pour créer un index. Qui a bien fonctionné et la mise à jour de la base de données fonctionne comme prévu. Quand j'ajoute une migration pour créer le deuxième indice, il échoue.
A votre première migration créer son entrée dans l' __MigrationHistory table?

OriginalL'auteur Jesper Lund Stocholm | 2013-10-30