2012-07-02 3 views
8

J'ai un projet de bibliothèque de classe avec mon DbContext et la migration est activée avec le fichier de configuration suivante:Comment réinitialiser les migrations de base de données en utilisant le code EF en premier?

<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    </configSections> 
    <connectionStrings> 
    <add name="DataContext" connectionString="Data Source=Data.sdf" providerName="System.Data.SqlServerCe.4.0" /> 
    </connectionStrings> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="System.Data.SqlServerCe.4.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
    </entityFramework> 
</configuration> 

quelque temps avant que je jouais avec les migrations pour ce projet et Get-Migrations commande renvoie toujours pour me:

PM> Get-Migrations -StartupProjectName "Data" 
Retrieving migrations that have been applied to the target database. 
201207012104355_Initial 
201207012031234_Initial 
201207012024250_Initial 

Le problème est que la commande retourne toujours ces éléments même si je supprime Data.sdf ou supprime tous les projets et en crée un nouveau. La seule façon que je peux créer une nouvelle base de données est de changer le nom du fichier de base de données dans la chaîne de connexion de Data.sdf à Data1.sdf par exemple. Alors, comment puis-je réinitialiser l'historique de migration sans changer le nom de la base de données?

+3

Etes-vous sûr que vous avez supprimé un fichier Data.sdf correct ? –

+0

Semble que j'ai dû supprimer Data.sdf là: C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ Data.sdf Très inattendu. –

+0

Les migrations créent une table dans votre base de données appelée __MigrationHistory, où les migrations sont stockées. L'avez-vous vérifié? –

Répondre

5

Je ne sais pas s'il s'agit de la méthode officielle. Mais voici comment je l'ai fait.

  1. fichier migration supprimée
  2. ligne correspondante supprimée de __MigrationHistory

    SUPPRIMER DE __MigrationHistory OU MigrationId = '201210271944168_AddLogTable'

Questions connexes