2012-07-02 21 views
8

Tengo un proyecto de biblioteca de clases con mi DbContext y la migración habilitado con siguiente fichero de configuración:¿Cómo restablecer las migraciones de la base de datos usando primero el código 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> 

algún tiempo antes de que yo jugaba con las migraciones para este proyecto y Get-Migraciones mando devuelve siempre siguiente para mí:

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

El problema es que el comando siempre devuelve estos elementos aunque elimine Data.sdf o elimine todos los proyectos y cree uno nuevo. La única manera en que puedo crear una nueva base de datos es cambiando el nombre del archivo de la base de datos en la cadena de conexión de Data.sdf a Data1.sdf, por ejemplo. Entonces, ¿cómo puedo restablecer el historial de migración sin cambiar el nombre de la base de datos?

+3

¿Estás seguro de que se ha eliminado un archivo Data.sdf correcta ? –

+0

Parece que necesitaba eliminar Data.sdf allí: C: \ Archivos de programa (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ Data.sdf Muy inesperado. –

+0

Las migraciones crean una tabla en su base de datos llamada __MigrationHistory, es donde se almacenan las migraciones. ¿Lo has comprobado? –

Respuesta

5

No sé si este es el método oficial. Pero así es como lo hice.

  1. la migración de archivos eliminados
  2. eliminados fila coincidente de __MigrationHistory

    CANCELACIÓN de __MigrationHistory DONDE MigrationId = '201210271944168_AddLogTable'

Cuestiones relacionadas