c# - 基于代码的 EF 迁移中是否有任何命令可以重新创建数据库
问题描述
我正在使用 ASP.NET MVC4。我正在切换到已经存在的测试数据库。是否有任何基于代码的迁移命令来删除和重新创建数据库,例如 Update-Database-DropCreate。
我不想使用任何数据库初始化程序,DropCreateDatabaseIfModelChanges
因为当我切换回实时数据库时,我将不得不手动删除初始化程序代码。有没有其他方法可以做到这一点,这样我以后使用实时数据库时就不必进行任何更改。
我试过Update-Database -force
了,但它没有重新创建数据库。
解决方案
如果您使用依赖注入并使用容器注入上下文类,您可以使用初始化策略为测试数据库创建不同的上下文,并保留原来的上下文,您所要做的就是更改注入的上下文,甚至添加一个上下文工厂根据环境创建特定的上下文
如果这很复杂,那么另一种方法是将初始化策略添加到您的上下文中并添加一个条件来检查这是测试服务器还是生产服务器(您可以从您可以从上下文中获取的连接字符串中知道这一点)
推荐阅读
- mysql - SequelizeDatabaseError - 无法添加外键约束
- python - ModuleNotFoundError: No module named - 尝试从另一个文件夹导入文件时
- java - java.time.Duration 的 springdoc-openapi-webflux-ui 问题(ISO 8601 持续时间格式)
- angular - 在 Angular-msal2 中使用 Azure idtoken 请求 API 时出现 Cors 错误
- php - 如何使用模态更新数据表中的数据?
- python - 我想单独过滤每个代理的客户。姜戈
- azure - 如何在 Azure Web App 的部署窗口期间让用户查看计划的维护消息
- r - R循环没有给出错误但也没有输出,代码可能有什么问题?
- ms-word - Word 加载项:自定义 XML 删除无法正常工作
- python - 如何从 pygame-menu 中的 text_input 获取值?