• 图文详解 解决 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 迁移数据   也不用担心之前的数据会被删除了!

  • 相关阅读:
    添加discuz积分规则
    顺序栈 (栈操作)
    数据结构--链栈操作
    数据结构--循环队列
    素数对猜想
    export和export default的区别
    vue-day15----渲染时因异步易报错的点、分类页面数据渲染、CategoryContainer.vue进入Classify.vue-动态路由、tab切换动画-vant
    问题
    css语句解释
    vue-day14----mock数据(模拟数据)、details路由下详情(Detail)和评价(Assess)页面切换到商品(Goods)页面-localStorage、Assess组件(AssessList)数据渲染-父传子、评价和晒图页面切换-toggle传不同的参数重新请求、上拉加载更多-better-scroll
  • 原文地址:https://www.cnblogs.com/amoniyibeizi/p/4486617.html
Copyright © 2020-2023  润新知