为什么我无法将实体框架迁移到初始状态?

时间:2013-02-22 13:44:14

标签: entity-framework entity-framework-5 ef-migrations

我已从项目中删除了开发数据库和Migrations文件夹。使用单元测试运行时,将重新创建项目开发数据库。我不明白为什么运行update-database给我

PM> Update-Database
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
Applying code-based migrations: [201302201840012_wieleDoWielu].
Applying code-based migration: 201302201840012_wieleDoWielu.

为什么要迁移:201302201840012_wieleDoWielu会被记住?我该如何删除它?存放在哪里?

最诚挚的问候 PrzemysławStaniszewski

2 个答案:

答案 0 :(得分:9)

这是一个答案。请恢复迁移文件夹及其迁移文件(恢复到您的项目)。然后按照我的theard的步骤 http://pawel.sawicz.eu/entity-framework-reseting-migrations/

1)Update-Database -Targetmigration:0 - 这是关键!第一 2)擦除表/迁移(您不必删除整个文件夹)
3)添加迁移初始化
4)更新 - 数据库

答案 1 :(得分:0)

尝试这些命令 Sqllocaldb.exe停止V11.0 Sqllocaldb.exe删除V11.0

这应该删除引用。在执行此操作之前,您可能必须注释掉一些更改,然后在执行迁移之前将更改重新恢复到模型中。

我是新手,所以希望我能理解你的问题,因为它听起来和我最近遇到的一样。

更永久的解决方案可能是将以下代码添加到您的Globel文件中,并将其替换为您需要的内容。有关此内容的文章也可以在以下链接中找到:

Database.SetInitializer(new DropCreateDatabaseIfModelChanges<PersonContext>()); 

http://ilmatte.wordpress.com/2012/12/05/entity-framework-5-code-first-enabling-migrations-in-a-real-project/