Ho un progetto di libreria di classi con il mio DbContext e la migrazione abilitata con il seguente file di configurazione:
<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 il comando Get-Migrations mi restituisce sempre:
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 questielementi anche se elimino Data.sdf o elimino tutti i progetti e ne realizzo uno nuovo. L'unico modo per creare un nuovo database è, ad esempio, modificare il nome del file di database nella stringa di connessione da Data.sdf a Data1.sdf. Quindi, come posso ripristinare la cronologia delle migrazioni senza cambiare il nome del database?
risposte:
5 per risposta № 1Non so se questo è il metodo ufficiale. Ma ecco come l'ho fatto.
- File di migrazione eliminato
Riga corrispondente eliminata da __MigrationHistory
ELIMINA DA __MigrationHistory DOVE MigrationId = "201210271944168_AddLogTable"