我正在使用ASP.NET MVC框架编写一个简单的CMS(用于大学毕业项目)。我的问题在于模块的数据迁移策略。由于每个模块在安装时都会更新数据库架构,因此必须在模块安装系统中实现数据库迁移机制。好的,Entity Framework中的数据迁移已经存在(感谢微软),但是迁移命令在包管理器控制台中运行。有没有办法以编程方式运行Data-Migration代码?任何帮助都将不胜感激。
我正在使用ASP.NET MVC框架编写一个简单的CMS(用于大学毕业项目)。我的问题在于模块的数据迁移策略。由于每个模块在安装时都会更新数据库架构,因此必须在模块安装系统中实现数据库迁移机制。好的,Entity Framework中的数据迁移已经存在(感谢微软),但是迁移命令在包管理器控制台中运行。有没有办法以编程方式运行Data-Migration代码?任何帮助都将不胜感激。
var migratorConfig = new Migrations.Configuration();
var dbMigrator = new DbMigrator(migratorConfig);
dbMigrator.Update();
在您的项目中,将Migrations.Configuration放置在您的命名空间(YourProjectNamespace.Migrations)中的迁移配置类。
如果您以编程方式使用它,您应首先关闭EF初始化程序:
Database.SetInitializer<YourDBContext>(null);
问题是程序化更新会在数据库不存在的情况下创建一个数据库。
这个类在代码中公开了EF迁移:
System.Data.Entity.MigrateDatabaseToLatestVersion
在EF中,迁移作用于整个数据库,而不是其中的模块化部分。
还发现了这个类: