我在我的应用程序中首先使用实体框架代码。但在更新模型后使用此版本时,每次必须启用自动迁移并使用软件包管理器控制台运行update-database
。有没有人有这方面的解决方案,我们是否可以自动执行此操作,而不使用包管理器控制台。如何在不使用包管理器控制台的情况下通过代码启用迁移
-1
A
回答
1
您只需运行Enable-Migrations
一次即可生成Configuration.cs
类和Initial
迁移。之后,无论何时更改模型,您都必须通过运行Add-Migration
来生成新迁移,并且还必须运行Update-Database
以将迁移应用到数据库,但不需要再次运行Enable-Migrations
。
如果你想自动执行过程中,你可以通过在Configuration
类的构造函数设置AutomaticMigrationsEnabled = true
启用自动生成迁移,并在DbContext
使用MigrateDatabaseToLatestVersion
数据库初始化。这将允许您只更改您的型号代码,而不必对包管理器控制台执行任何操作,不需要使用Add-Migration
或Update-Database
。在创建项目之后,您仍然需要运行Enable-Migrations
一次,以便在生成Initial
迁移时开始。
无论如何,自动迁移可能会导致一些问题,我不会推荐你使用它们。所以,当你的模型改变时,我会继续执行手册Add-Migration
命令。如果使用MigrateDatabaseToLatestVersion
数据库初始值设定项,则仍然可以跳过Update-Database
。
另一种方式将它用DbMigrator
从您的代码运行相当于Update-Database
(但你并不需要这样做,如果您使用的是MigrateDatabaseToLatestVersion
数据库初始化)做:
var migrator = new DbMigrator(new DbMigrationsConfiguration());
migrator.Update();
相关问题
- 1. 如何在程序包管理器控制台中启用迁移?
- 2. 如何在代码中使用EF迁移Db而不是Nuget包管理器控制台?
- 3. 如何在不迁移的情况下从Rails控制台重命名列?
- 4. 包管理器控制台在使用添加迁移时崩溃
- 5. 在不使用管理控制台的情况下确定SQL Azure区域
- 6. 在没有软件包管理器控制台的情况下安装C#库
- 7. Mininet:如何在不使用xterm的情况下运行控制器代码
- 8. 程序包管理器控制台添加迁移命令不起作用
- 9. 如何在使用Git的情况下迁移多个版本的代码?
- 10. 如何在没有工匠的情况下运行laravel迁移(使用代码)
- 11. 如何在不显示控制台的情况下调用_wsystem?
- 12. 如何在不使用runat服务器的情况下访问后台代码中的html控制值?
- 13. 在Visual Studio中通过包管理器控制台安装TestStack.White
- 14. 如何在Windows上安装OpenCV并在不使用包管理器的情况下为其启用PyCharm
- 15. 包管理器控制台启用的迁移CommandNotFoundException只能在特定的VS项目
- 16. 包管理器控制台不工作
- 17. 如何在不使用包管理器的情况下获取启动器的活动/意图(自封装)
- 18. 在没有主机的情况下使用源代码控制
- 19. 如何在特定情况下通过使用控制器添加has_many?
- 20. 如何在不使用管理控制台的情况下在websphere 8上部署war?
- 21. 如何在不下载源代码的情况下使用EXSLT?
- 22. 在没有控制器的情况下使用Spring管理的DAO?
- 23. 如何在不使用Mule管理控制台的情况下负载均衡Mule ESB
- 24. 在Visual Studio中使用包管理器控制台中的git
- 25. 如何在不使用实体框架的情况下使用MVC4迁移?
- 26. 如何在不使用迁移的情况下使用LocalDB和EF
- 27. 如何使用WAS管理控制台
- 28. 如何在不使用控制台的情况下重置WebSphere中的PARENT FIRST?
- 29. 如何在不打开GUI的情况下在控制台中启动apache tika?
- 30. 如何启用代码优先迁移