在使用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 迁移数据   也不用担心之前的数据会被删除了!

图文详解 解决 MVC4 Code First 数据迁移的更多相关文章

  1. 解决 MVC4 Code First 数据迁移 数据库发生更改导致调试失败解决方法(二)

    文章转载自:http://www.cnblogs.com/amoniyibeizi/p/4486617.html 前几天学MVC过程中,遇到更改Model类以后,运行程序就会出现数据已更改的问题导致调 ...

  2. 如何用Python来处理数据表的长宽转换(图文详解)

    不多说,直接上干货! 很多地方都需用到这个知识点,比如Tableau里.   通常可以采取如python 和 r来作为数据处理的前期. Tableau学习系列之Tableau如何通过数据透视表方式读取 ...

  3. ambari-server启动报错500 status code received on GET method for API:/api/v1/stacks/HDP/versions/2.4/recommendations Error message : Server Error解决办法(图文详解)

    问题详情 来源是,我在Ambari集群里,安装Hue. 给Ambari集群里安装可视化分析利器工具Hue步骤(图文详解 所遇到的这个问题. 然后,去ambari-server的log日志,查看,如下 ...

  4. 如何在IDEA里给大数据项目导入该项目的相关源码(博主推荐)(类似eclipse里同一个workspace下单个子项目存在)(图文详解)

    不多说,直接上干货! 如果在一个界面里,可以是单个项目 注意:本文是以gradle项目的方式来做的! 如何在IDEA里正确导入从Github上下载的Gradle项目(含相关源码)(博主推荐)(图文详解 ...

  5. PLSQL Developer概念学习系列之登录连接Oracle时出现(没有登录) -PL / SQL Developer:ORA - 12541: TNS :无建听程序的错误解决办法(图文详解)

    不多说,直接上干货! 前期博客 PLSQL Developer概念学习系列之如何正确登录连接上Oracle(图文详解)   如用scott.scott_password进行登录,orcl是全局数据库 ...

  6. 全网最详细的Cloudera Hue执行./build/env/bin/supervisor 时出现KeyError: "Couldn't get user id for user hue"的解决办法(图文详解)

    不多说,直接上干货! 问题详情 如下: [root@bigdata-pro01 hue--cdh5.12.1]# ./build/env/bin/supervisor Traceback (most ...

  7. 全网最详细的启动或格式化zkfc时出现java.net.NoRouteToHostException: No route to host ... Will not attempt to authenticate using SASL (unknown error)错误的解决办法(图文详解)

    不多说,直接上干货! 全网最详细的启动zkfc进程时,出现INFO zookeeper.ClientCnxn: Opening socket connection to server***/192.1 ...

  8. 全网最详细的HA集群的主节点之间的双active,双standby,active和standby之间切换的解决办法(图文详解)

    不多说,直接上干货! 1. HA集群的主节点之间的双standby的解决办法: 全网最详细的Hadoop HA集群启动后,两个namenode都是standby的解决办法(图文详解) 2. HA集群的 ...

  9. 执行bin/hdfs haadmin -transitionToActive nn1时出现,Automatic failover is enabled for NameNode at bigdata-pro02.kfk.com/192.168.80.152:8020 Refusing to manually manage HA state的解决办法(图文详解)

    不多说,直接上干货! 首先, 那么,你也许,第一感觉,是想到的是 全网最详细的Hadoop HA集群启动后,两个namenode都是standby的解决办法(图文详解) 这里,nn1,不多赘述了.很简 ...

随机推荐

  1. LeetCode 70. Climbing Stairs爬楼梯 (C++)

    题目: You are climbing a stair case. It takes n steps to reach to the top. Each time you can either cl ...

  2. M1事后分析报告--We have power to change the origin state

    M1事后分析报告 设计与实现 我们发的软件解决的问题?是否满足后面小组的要求?是否能够完全拟合前期目标? 答: 前期我们的软件完成量并不是特别让人满意,我们组在完成这些任务量之后,发现有很多地方是在做 ...

  3. springmvc关于redisCluster的使用及配置

    首先附上maven仓库jar包的下载地址:https://repo.spring.io/webapp/#/artifacts/browse/tree/General/libs-release-loca ...

  4. [转帖学习]Oracle的 SYS_CONTEXT 函数简介

    Oracle的 SYS_CONTEXT 函数简介 https://blog.csdn.net/IndexMan/article/details/48606369 1.什么是SYS_CONTEXT? S ...

  5. Memcache 优化建议

    一.memcached工作原理 基本概念:slab,page,chunk. slab,是一个逻辑概念.它是在启动memcached实例的时候预处理好的,每个slab对应一个chunk size,也就是 ...

  6. blog 社会化评论插件 多说for china, disqus for global range

    1.disqus https://disqus.com/ https://publishers.disqus.com/engage https://disqus.com/admin/create/ h ...

  7. 【移动端debug-6】如何做一个App里的web调试小工具

    原文链接:如何做一个App里的web调试小工具 我们知道现在hybrid app非常流行,在这样的app里,h5页面是应用非常广泛的.相对于以往在pc端开发的网页,放在app里的网页由于无法直接使用桌 ...

  8. 51nod 1102 面积最大的矩形 (单调栈)

    链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1102 思路: 首先介绍下单调栈的功能:利用单调栈,可以找到从左/ ...

  9. Goodbye My Old Days

    几天前的CTT的胸牌上印着熟悉的初中学校的名字,回想起自己早已废弃的博客,不禁感慨万分.如你所见,一位名叫supy的菜鸡OIer曾经小心翼翼地写下一篇篇文章来装点这个地方,时间是初二的ZJOID1直到 ...

  10. 【bzoj4009】 HNOI2015—接水果

    http://www.lydsy.com/JudgeOnline/problem.php?id=4009 (题目链接) 题意 给出一颗无根树.有一些路径记为$P_i$,这些路径有两个端点和一个权值$W ...