2012-07-02 6 views
8

Ich habe ein Klassenbibliotheksprojekt mit meiner DbContext und Migration mit folgenden Konfigurationsdatei aktiviert:Zurücksetzen von Datenbankmigrationen mit EF-Code zuerst?

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

Einige Zeit, bevor ich bei der Migration für dieses Projekt gespielt und Get-Migrations-Befehl gibt immer ich folgende:

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

Das Problem ist, dass Befehl immer diese Elemente zurückgibt, auch wenn ich Data.sdf lösche oder alle Projekte löschen und neue erstellen. Die einzige Möglichkeit, eine neue Datenbank zu erstellen, besteht darin, den Dateinamen der Datenbank in der Verbindungszeichenfolge von Data.sdf zu Data1.sdf zu ändern. Wie kann ich den Migrationsverlauf zurücksetzen, ohne den Datenbanknamen zu ändern?

+3

Sind Sie sicher, dass Sie eine korrekte Data.sdf Datei gelöscht haben ? –

+0

Scheint, ich musste Data.sdf dort löschen: C: \ Programme (X 86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ Data.sdf Sehr unerwartet. –

+0

Migrationen erstellen eine Tabelle in Ihrer Datenbank namens __MigrationHistory, in der die Migrationen gespeichert werden. Hast du es überprüft? –

Antwort

5

Weiß nicht, ob dies die offizielle Methode ist. Aber hier ist, wie ich es gemacht habe.

  1. Gelöschte Migrationsdatei
  2. Gelöschte passende Zeile von __MigrationHistory

    VON __MigrationHistory DELETE WHERE MigrationId = '201210271944168_AddLogTable'

Verwandte Themen