2012-07-02 127 views
8

我有一個類庫項目與我的DbContext和遷移具有下列配置文件中啓用:如何首先使用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> 

前一段時間我打了遷移該項目獲得的遷移命令總是返回下面對我說:

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

的問題是,命令總是返回這些項目即使我刪除Data.sdf或刪除所有項目,並做出新的一個。例如,我可以創建新數據庫的唯一方法是將連接字符串中的數據庫文件名從Data.sdf更改爲Data1.sdf。 那麼如何重新設置遷移歷史而不更改數據庫名稱?

+3

你確定你已經刪除了一個正確的Data.sdf文件? –

+0

似乎我需要刪除Data.sdf那裏: C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ Data.sdf 非常意外。 –

+0

遷移在您的數據庫中創建一個名爲__MigrationHistory的表,它是存儲遷移的地方。你檢查過了嗎? –

回答

5

不知道這是否是官方的方法。但是,我是這麼做的。

  1. 刪除遷移文件
  2. 刪除匹配行從__MigrationHistory

    DELETE FROM __MigrationHistory WHERE MigrationId = '201210271944168_AddLogTable'

相關問題