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

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

时间: 2024-10-21 02:40:00

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

FineBI学习系列之FineBI与HBase数据连接(图文详解)

不多说,直接上干货! 这是来自FineBI官网提供的帮助文档 http://help.finebi.com/http://help.finebi.com/doc-view-584.html 目录: 1.描述 2.操作 3.注意事项 1.描述 Hbase作为大数据平台的重要组成部分,在数据存储方面起到了至关重要的作用,因此BI连接Hbase也是必不可少的功能之一.FineBI提供的方法是通过phoenix连接hbase,下面我们将详细介绍如何进行连接. 2.操作 2.1 配置信息   驱动 URL

全网最详细的启动Kafka服务时出现kafka.common.InconsistentBrokerIdException: Configured brokerId 3 doesn't match stored brokerId 1 in meta.properties错误的解决办法(图文详解)

不多说,直接上干货! 问题详情 执行bin/kafka-server-start.sh config/server.properties 时, [[email protected] kafka_2.11-0.9.0.0]$ bin/kafka-server-start.sh config/server.properties [2018-06-17 16:05:38,983] INFO KafkaConfig values: request.timeout.ms = 30000 log.roll.

大数据学习系列之五 ----- Hive整合HBase图文详解

引言 在上一篇 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机) 和之前的大数据学习系列之二 ----- HBase环境搭建(单机) 中成功搭建了Hive和HBase的环境,并进行了相应的测试.本文主要讲的是如何将Hive和HBase进行整合. Hive和HBase的通信意图 Hive与HBase整合的实现是利用两者本身对外的API接口互相通信来完成的,其具体工作交由Hive的lib目录中的hive-hbase-handler-*.jar工具类来实现,通信原理如下图

大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单机的搭建,是因为作为个人学习的话,单机已足以,好吧,说实话是自己的电脑不行,使用虚拟机实在太卡了... 整个的集群搭建是在公司的测试服务搭建的,在搭建的时候遇到各种各样的坑,当然也收获颇多.在成功搭建大数据集群之后,零零散散的做了写笔记,然后重新将这些笔记整理了下来.于是就有了本篇博文. 其实我在搭

FineBI学习系列之FineBI与IBM DB2数据连接(图文详解)

不多说,直接上干货! 这是来自FineBI官网提供的帮助文档 http://help.finebi.com/http://help.finebi.com/doc-view-562.html 目录: 1.描述 2.操作 3.注意事项 1.描述 IBM DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下. DB2提供了高层次的数据利用性.完整性.安全性.可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令

FineBI学习系列之FineBI与IBM Informix数据连接(图文详解)

不多说,直接上干货! 这是来自FineBI官网提供的帮助文档 http://help.finebi.com/http://help.finebi.com/doc-view-563.html 目录: 1.描述 2.操作 1.描述 Informix是IBM公司出品的关系数据库管理系统(RDBMS)家族.作为一个集成解决方案,它被定位为作为IBM在线事务处理(OLTP)旗舰级数据服务系统.下面我们介绍如何在FineBI中连接Informix数据库. 2.操作 2.1 配置信息 驱动     URL  

图文详解PDF与word、excel、ppt互转工具Solid PDF Tools v9的下载、安装与注册激活

很多同学经常询问小编有没有关于PDF转word.excel.ppt或者它们之间互转的软件,之前亦是美网络小编曾经给大家介绍过一款工具AnyBizSoft_PDF_Convert的下载.安装与注册激活使用教程,但是有部分小伙伴反映说安装时出现了问题,可能是系统不兼容导致的无法使用,为了解决小伙伴的难题,今天再给大家分享一款PDF与word.excel.ppt互转工具,那就是Solid PDF Tools v9中文版,下面亦是美网络给大家介绍一下它的下载.安装与注册激活教程吧. Solid PDF

【图文详解】scrapy安装与真的快速上手——爬取豆瓣9分榜单

写在开头 现在scrapy的安装教程都明显过时了,随便一搜都是要你安装一大堆的依赖,什么装python(如果别人连python都没装,为什么要学scrapy-.)wisted, zope interface,pywin32---现在scrapy的安装真的很简单的好不好! 代码我放github上了,可以参考: https://github.com/hk029/doubanbook 为什么要用scrapy 我之前讲过了requests,也用它做了点东西,([图文详解]python爬虫实战--5分钟做

图文详解crond定时任务

第1章crontd的介绍   1.1crond的含义 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务. 1.2关于任务调度的分类 Linux下的任务调度分为两类,系统任务调度和用户任务调度. 1.系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘.日志清理等.