2012-07-02 15 views
8

Ho un progetto libreria di classi con la mia DbContext e migrazione abilitato con i seguenti file di configurazione:Come ripristinare le migrazioni del database utilizzando prima il codice EF?

<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> 

Qualche tempo prima ho giocato con le migrazioni per questo progetto e Get-Migrazioni comando restituisce seguendo sempre a me:

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

Il problema è che il comando restituisce sempre questi elementi anche se elimino Data.sdf o elimini tutto il progetto e ne crei uno nuovo. L'unico modo per creare un nuovo database è modificare il nome del file di database nella stringa di connessione da Data.sdf a Data1.sdf, ad esempio. Quindi, come posso ripristinare la cronologia delle migrazioni senza modificare il nome del database?

+3

Sei sicuro che avete cancellato un file Data.sdf corretta ? –

+0

Sembra necessario eliminare Data.sdf lì: C: \ Programmi (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ Data.sdf Molto inaspettato. –

+0

Le migrazioni creano una tabella nel database chiamata __MigrationHistory, è dove sono archiviate le migrazioni. L'hai controllato? –

risposta

5

Non so se questo è il metodo ufficiale. Ma ecco come l'ho fatto.

  1. migrazione di file eliminati
  2. riga corrispondente eliminata dal __MigrationHistory

    DELETE FROM WHERE __MigrationHistory MigrationId = '201210271944168_AddLogTable'

Problemi correlati