图文详解 解决 MVC4 Code First 数据迁移_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 图文详解 解决 MVC4 Code First 数据迁移

图文详解 解决 MVC4 Code First 数据迁移

 2015/5/8 3:11:28  amoniyibeizi  程序员俱乐部  我要评论(0)
  • 摘要:在使用Codefirst生成数据库后当数据库发生更改时运行程序就会出现数据已更改的问题这时可以删除数据库重新生成解决但是之前的数据就无法保留为了保留之前的数据库数据我们需要使用到Codefirst数据迁移首先如果需要更改数据结构必须是先更改model类然后使用Codefirs数据迁移如果直接先更改了数据库则使用数据迁移会报错使用Codefirs数据迁移图解工具--》库文件包程序管理器--》程序包管理控制台如图注意观察默认项目和程序包源因为只有安装了EF框架才能使用所以只有把DBContext
  • 标签:MVC 详解 解决 数据 迁移

在使用Code first生成数据库后

当数据库发生更改时 运行程序就会出现数据已更改的问题  这时可以删除数据库重新生成解决

但是之前的数据就无法保留  为了保留之前的数据库数据  我们需要使用到Code first数据迁移

首先如果需要更改数据结构  必须是先更改model类 然后使用Code firs数据迁移  如果直接先更改了数据库 则使用数据迁移会报错 

使用Code firs数据迁移图解

      工具--》库文件包程序管理器--》程序包管理控制台  如图

注意观察 默认项目  和程序包源  

因为只有安装了EF框架 才能使用 所以只有把 DBContext.cs 放在默认启动目录下才能使用

然而我们在项目开发时  我们并不会这么做 如果只是引用了EF 并不能达到安装EF的效果 后面会说明 可以采用如图下方法

当把DBContext.cs 放在其他目录下时 这里用Model事例

 

把默认选择为model 直接执行下面的命令会报错  这是因为此目录缺少EF5.0 我们需要安装EF5.0

执行此命令 Install-Package EntityFramework -Version 5.0.0  安装EF   次处EF以5.0版本为例  安装后Model类如下图     安装后Model类下会出现 packages.config   现在我们就可以正常的开始操作数据迁移了 首先执行命令Enable-Migrations -ContextTypeName MovieDBContext 开启Code First迁移  开启后会出现如下图   开启后程序会默认添加Migrations这个文件夹  打开 configuration.cs
 
 public Configuration()
 {
           AutomaticMigrationsEnabled = false;
 }

将AutomaticMigrationsEnabled = false; 改为AutomaticMigrationsEnabled = true; 开启自动 Code first 迁移

接下来有两种方法  第一种方法

执行命令 add-migration Initial   为迁移“Initial”搭建基架。执行后如下图

 

代码先行迁移机制在Migrations文件夹下创建另外一个类文件,文件名为时间戳+下划线+ Initial.cs,该类将被执行,创建数据库架构。随后,Seed方法将被执行,测试数据被添加其中。

然后执行命令 update-database  即可完成数据迁移。。。

第二种方法

执行命令 add-migration AddRatingMig   为迁移“AddRatingMig   ”搭建基架。执行后如下图

 

代码先行迁移机制在Migrations文件夹下创建另外一个类文件,文件名为时间戳+下划线+ AddRatingMig.cs,该类将被执行,自动比对与数据库差异,创建数据库架构。随后,Seed方法将被执行,测试数据被添加其中。

然后执行命令 update-database  即可完成数据迁移。。。

这样就实现了修改Model类后不删除数据库重建  使用Code first 迁移数据   也不用担心之前的数据会被删除了!

 

发表评论
用户名: 匿名