首页 > 解决方案 > 基于代码的 EF 迁移中是否有任何命令可以重新创建数据库

问题描述

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

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

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

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

解决方案


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

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


推荐阅读