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

Is there any command in Code-based EF migration to re-create the database

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

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

我试过 Update-Database -force 但它没有重新创建数据库。

如果您通过迁移命令执行此操作,您只需 运行 带有 -TargetMigration 0 的命令,然后再次执行 Update-Database。

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

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