Code First Migration Entity Framework 6清空/关闭

时间:2015-04-24 15:10:30

标签: entity-framework-6 ef-migrations

我遇到的问题是,当我“添加迁移”时,似乎没有完成与目标数据库的比较,并且Up / Down方法是空的。

这始于我针对不同的环境。当我更新数据库时,迁移更改工作正常,并且它针对一个特定数据库,我的dev数据库。

当我将连接字符串更改为目标另一个数据库,另一个服务器上的另一个开发框,并尝试为该特定环境添加迁移时,Up / Down方法始终为空。

我尝试定位更新数据库,以便在第二个开发框中回滚对上一次迁移的更改,但它没有改变任何内容。

如果我将代码优先更改从一个环境迁移到另一个环境,是否需要专门做些什么呢?

3 个答案:

答案 0 :(得分:1)

您不需要添加新迁移,您需要强制EF运行所有旧迁移。尝试指定源迁移和目标迁移:

Update-Database -SourceMigration: $InitialDatabase -TargetMigration: AddPostAbstract  

另一种选择是通过向命令添加-Script来生成可以针对其他数据库运行的脚本。

请参阅https://msdn.microsoft.com/en-us/data/jj591621.aspx#script

如果您有大量迁移,可以通过删除它们并进行新的迁移迁移来对其进行任务。

答案 1 :(得分:1)

我最终做的是生成初始迁移,然后比较两个服务器之间的模式(@Steve Greene评论了一个很棒的链接,描述了我在这里做的比较:http://www.techbubbles.com/sql-server/schema-compare-for-sql-server-in-visual-studio-2013/)。然后,我煞费苦心地浏览了迁移代码并注释掉了不必要的内容。

迁移成功后,所有内容都恢复正常运行。

我不确定是否有更好的处理方法,但这对我有用。

答案 2 :(得分:1)

我一直在努力解决这个空洞的向上()和向下()出现在每次尝试几个小时。甚至从一个新项目开始尝试..没有用..

直到我想到在visual studio中设置数据项目作为解决方案的默认启动项目..然后魔术发生了!

不能说它是否是一个解决方案(因为我仍然没有看到与基本问题的联系),但可能它可以帮助视觉工作室的宇宙符号与我的相同:)