2012-07-02 53 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'

相关问题