利用实体框架EF的代码优先模式对ASP.NET MVC项目实现数据库自动迁移.
首先在昨天的项目中添加一个人Rating电影分级的字段
在主页中也要添加显示rating的字段
如果我们现在运行这个页面,很显然会有错误,因为刚刚增加的字段和数据表中的字段对应不一致
接下来我们要选择工具选项,然后选择NuGet包管理器,选择程序包管理器控制台
输入下面的命令,这里要对应相应的数据上下文类,回车
打开配置Configuration文件
增改字段,表示允许数据丢失
AutomaticMigrationsEnabled =true;
AutomaticMigrationDataLossAllowed = true;
打开Global文件
在Application_Start方法下添加字段,点击波浪线修复引入命名空间,表示更新数据库,里面创建了一个自动迁移到最新版本数据库的一个实例
System. Data.Entity.Database.SetInitializer(
new System.Data.Entity.MigrateDatabaseToLatestVersion<EFCodeFirstMovies.Mode1s.MovieEntities,
Migrations.Configuration>());
打开数据库左侧文件迁移历史表,表中第一行记录了表的开始的生成历史
重新运行一次项目,其他字段正常显示,新添加的字段中还没有数据
再来数据库中点击刷新,可以看到新增了一条迁移历史
打开Movie数据表的设计,可以看到增加了一条Rating字段
这样就完成了一个简单的数据库的迁移操作