我正在编写一个简单CMS
的 ASP.NET MVC 框架(用于大学期末项目)。我的问题是模块的数据迁移策略。由于每个模块在安装时都会更新数据库模式,因此必须在模块中实现数据库迁移机制安装 system.ok ,data-migration
实体框架中已经存在(感谢 MS),但是迁移命令在包管理器控制台中运行。有没有办法以Data-Migration
编程方式运行代码?非常感谢任何帮助。
问问题
10050 次
2 回答
21
如果您在包管理器控制台中启用了自动迁移,您可以在应用程序的 init 部分中使用以下代码(例如在SimpleMembershipInitializer中):
var migratorConfig = new Migrations.Configuration();
var dbMigrator = new DbMigrator(migratorConfig);
dbMigrator.Update();
其中Migrations.Configuration是将项目中的迁移配置类放入命名空间 ( YourProjectNamespace.Migrations )。
如果您以编程方式使用它,则应首先关闭 EF 初始化程序:
Database.SetInitializer<YourDBContext>(null);
问题是程序更新会创建一个数据库,如果它不存在的话。
于 2013-05-03T16:42:45.780 回答
10
此类在代码中公开 EF 迁移:
System.Data.Entity.MigrateDatabaseToLatestVersion
在 EF 中,迁移虽然适用于整个数据库 - 而不是一个模块化部分。
刚刚也找到了这个类:
于 2012-11-12T11:33:49.927 回答