在基于代码的EF迁移中是否有任何命令可以重新创建数据库

时间:2019-01-26 16:10:59

标签: c# asp.net-mvc-4 ef-code-first ef-migrations

我正在使用ASP.NET MVC4。我正在切换到已经存在的测试数据库。 是否有任何基于代码的迁移命令来删除并重新创建数据库,例如Update-Database-DropCreate

我不想使用任何数据库初始化程序,例如DropCreateDatabaseIfModelChanges,因为当我切换回实时数据库时,我将不得不手动删除初始化程序代码。还有其他方法可以做到这一点,以便以后在使用实时数据库时不必进行任何更改。

我尝试了Update-Database -force,但是它没有重新创建数据库。

2 个答案:

答案 0 :(得分:1)

如果您使用依赖项注入并使用容器注入上下文类,则可以使用初始化策略为测试数据库创建不同的上下文,并保留原始的原样,因为您要做的就是更改注入的上下文,甚至添加一个上下文工厂,以根据环境创建特定上下文

如果这很复杂,那么另一种方法是将初始化策略添加到您的上下文中,并添加一个条件来检查这是测试服务器还是生产服务器(您可以从u上下文中获得的连接字符串中知道)

答案 1 :(得分:0)

如果通过迁移命令执行此操作,则只需使用-TargetMigration 0运行该命令,然后再次执行Update-Database。