使用CodeFirst时,如果Model发生改变的话,例如我们给User类里面新加个Sex属性,运行时会出现如下错误:

这时我们需要使用数据迁移来将model的改变同步更新到数据库中。

1、启用数据迁移功能

  打开程序包管理控制台:选好要启动数据迁移的默认项目,输入enable-migrations,运行,出现下述情况即迁移成功。

  启用数据迁移成功后项目里面会多出一个文件夹,文件夹里包括两个文件):

  打开Configuration文件,将构造函数里面的AutomaticMigrationsEnabled改为True:

  至于出现错误的情况大家自行百度吧,一般是不会出现什么问题的。

2、添加迁移记录

  在更新到数据库前,我们添加一份关于修改的Model的迁移记录。

  在程序包管理控制台输入:add-migration name(name可以自定义,一般是跟修改的类有关)

添加完成后在Migrations文件夹中会多出一个文件,这个文件记载着相关类的变化,例如我们给User类里面新增一个sex属性,添加迁移记录后就出现如下文件:

3、更新到数据库

更新非常简单,在程序包管理器控制台输入:update-database -verbose,即可将修改信息更新到数据库中,如下图所示:

然后我们可以去数据库里面看一下,sex字段就自动添加到userInfo表里面了。

4、新增model时注意事项

新增一个model后,需要对应的添加其map类,然后在数据库上下文中将该model加入即可。

EF学习之CodeFirst(二)--数据迁移的更多相关文章

  1. EF 中 Code First 的数据迁移以及创建视图

    写在前面: EF 中 Code First 的数据迁移网上有很多资料,我这份并没什么特别.Code First 创建视图网上也有很多资料,但好像很麻烦,而且亲测好像是无效的方法(可能是我太笨,没搞成功 ...

  2. CodeFirst解决数据迁移问题

    CodeFirst解决数据迁移问题 分类: 数据库 设计模式 c#2013-04-24 17:56 137人阅读 评论(0) 收藏 举报 工程用的MVC + Entity Framework,根据Co ...

  3. Java学习-028-JSON 之二 -- 数据读取

    JSON数据由 JSONObject.JSONArray.key_value 组合而成.通常来说,JSONObject 可以包含 JSONObject.JSONArray.key_value:JSON ...

  4. CodeFirst进行数据迁移之添加字段

    一.为模型更改设置 Code First 数据迁移 1.工具->库程序包管理器->程序包管理器控制台->输入"Enable-Migrations"  或者 Ena ...

  5. EF Codefirst(二)数据注释

    CodeFirst通过分析我们在代码里编写的类,以及类之间的关系生成数据库表,以及表之间的各种关系.数据库的表会涉及到主键,外键,列是否为空,列类型等等. 我们要通过怎样的方式来暴露这些信息呢?   ...

  6. MVC5+EF6+MYSQl,使用codeFirst的数据迁移

    之前本人在用MVC4+EF5+MYSQL搭建自己的博客.地址:www.seesharply.com;遇到一个问题,就是采用ef的codefirst模式来编写程序,我们一般会在程序开发初期直接在glob ...

  7. 实现CodeFirst自动数据迁移无需命令

    本主题假设您掌握了实体框架中 Code First 迁移的基本知识. 借助自动迁移功能,您无需对您所做的每一个更改都在程序包管理器控制台中运行Update-Database 命令. 启用迁移 只需执行 ...

  8. EF学习之CodeFirst(一)--创建Model

    一.创建Model 创建Model类有两种方式: 1.直接创建model 所有约束条件都以特性的方式写在model的属性上面,映射到数据库的table表名标识在class上,例如: [Table(&q ...

  9. 实现CodeFirst自动数据迁移无需手动执行命令

    本主题假设您掌握了实体框架中 Code First 迁移的基本知识. 借助自动迁移功能,您无需对您所做的每一个更改都在程序包管理器控制台中手动Update-Database . 启用迁移 只需执行一次 ...

随机推荐

  1. Java源码安全审查

    最近业务需要出一份Java Web应用源码安全审查报告, 对比了市面上数种工具及其分析结果, 基于结果总结了一份规则库. 本文目录结构如下: 检测工具 FindSecurityBugs 基于class ...

  2. 《LeetBook》leetcode题解(12):Integer to Roman[M]

    我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ...

  3. UVM_INFO

    文件:src/ch3/section3.5/3.5.6/get/my_model.sv 21 function void my_model::build_phase(uvm_phase phase); ...

  4. OpenStack概述

    OpenStack OpenStack is a cloud operating system that controls large pools of compute, storage, and n ...

  5. 【原】Ajax技术原理

    主要内容: Ajax原理 Ajax核心技术 Ajax是Asynchronous JavaScript and XML的简称,意思是异步的JavaScript和XML. 主要包括技术: web标准的XH ...

  6. nodejs文件上传组件multer使用

    多图上传,发送端: var express = require('express') var rp = require('request-promise') var fs = require(&quo ...

  7. Cheatsheet: 2018 08.01 ~ 2018 10.31

    Other Building the Ultimate Developer PC 3.0 - The Parts List for my new computer, IronHeart Face re ...

  8. Web前端性能优化的三个偏方

    首先牢骚几句...这一次性能优化针对的模块,初次开发阶段客户给的时间就非常少,俩月时间跳过设计一边需求分析一边编码,最后干出6000+的代码行.最终结果嘛,呵呵,除开一堆bug不说,性能就是个非常大的 ...

  9. 添加FB登陆时,需要curl扩展

    安装curl扩展遇到一个傻逼问题 [root@xxx openssl]# /usr/local/php/bin/phpizeCannot find config.m4.Make sure that y ...

  10. groovy实现循环、交换变量、多赋值、?.运算符

    /** * Created by Jxy on 2019/1/3 10:01 * 1.实现循环的方式 * 2.安全导航操作符---?. * 3.一次性赋值给多个变量 */ 0.upto(2){ pri ...