一、为模型更改设置 Code First 数据迁移

1、工具—>库程序包管理器—>程序包管理器控制台—>输入“Enable-Migrations”  或者

Enable-Migrations -ContextTypeName Mvc.Models.DataContext

Enable-Migrations -ContextTypeName 命名空间.上下文名称

注:如果正确的话 则显示“已为项目 xxx启用 Code First 迁移。”,

Enable-Migrations命令创建了一个Migrations文件夹和Configuration.cs文件

2、程序包管理器控制台—>输入“add-migration Initial”创建初始化迁移。

注:名称“Initial”是随意命名,即要添加的字段。用来命名创建好的迁移文件。

3、程序包管理器控制台—>输入“update-database”
    4、运行程序,更新完毕。

二、进一步
    问题已经解决了,我们再来深入一下这种迁移方式。
    当我们增加列(增加实体字段)时,可以不必重复上面的所有操作。
    1、只需要将\Migrations\Configuration.cs文件中的AutomaticMigrationsEnabled = false;改成true
    2、工具—>库程序包管理器—>程序包管理器控制台—>输入“update-database”

三、当我们删除列(删除实体字段)时,同样使用上面的操作,没有成功,报会丢失数据,

所以不能简单地执行“update-database”就能完成。

1、执行命令“add-migration Initial”
    2、执行命令“update database”
    3、运行程序,更新完毕

四、很强大的迁移

public class ContactContext : DbContext
    {
        public ContactContext()
            : base("name=DefaultConnection")
        {
            //自动创建表,如果Entity有改到就更新到表结构
            Database.SetInitializer<ContactContext>(new MigrateDatabaseToLatestVersion<ContactContext, ReportingDbMigrationsConfiguration>());
        }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); //表名为类名,不是上面带s的名字  //移除复数表名的契约
            modelBuilder.Conventions.Remove<IncludeMetadataConvention>();     //不创建EdmMetadata表  //防止黑幕交易 要不然每次都要访问 EdmMetadata这个表
        }

public DbSet<City> Cities { get; set; }
        public DbSet<Area> Area { get; set; }
        public DbSet<Campaign> Campaign { get; set; }
    }

internal sealed class ReportingDbMigrationsConfiguration : DbMigrationsConfiguration<ContactContext>
    {
        public ReportingDbMigrationsConfiguration()
        {
            AutomaticMigrationsEnabled = true;//任何Model Class的修改將會直接更新DB
            AutomaticMigrationDataLossAllowed = true;
        }
    }

参考网址

http://www.cnblogs.com/hugh251325/archive/2013/03/21/2972431.html

http://www.cnblogs.com/youring2/p/mvc-5-adding-a-new-field.html

http://blog.csdn.net/zy332719794/article/details/8845405

http://www.ejutuo.com/bbs/thread-3225-1-1.html

http://www.cnblogs.com/chinabc/archive/2013/01/16/2846062.html         MVC中Code First编程一些小技巧

Code First 数据迁移 转的更多相关文章

  1. EF Code First 数据迁移配置

    这里我想讲清楚code first 数据迁移的两种模式,还有开发环境和生产环境数据迁移的最佳实践. 1.1 数据迁移综述 EF Code first 虽然已经有了几种不同的数据库初始化策略,但是大部分 ...

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

    在使用Code first生成数据库后 当数据库发生更改时 运行程序就会出现数据已更改的问题  这时可以删除数据库重新生成解决 但是之前的数据就无法保留  为了保留之前的数据库数据  我们需要使用到C ...

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

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

  4. C#+EntityFramework编程方式详细之Code First 数据迁移

    在前几篇的C#+EntityFramework编程方式中介绍了C#+EntityFramework编程方式Code First ,Model First以及Dtatabase First 等编程方式, ...

  5. Code first 数据迁移

    前段时间用到了EF,整理一下 EF ,全称Entity FramWork.就是微软以ADO.NET为基础发展的所谓ORM(对象关系映射框架,或者说是数据持久化框架). 简单说就是根据实体对象操作数据库 ...

  6. EF6:编写你自己的code first 数据迁移操作(睡前来一篇,翻译的)

    原英文版由EF团队成员 Rowan Miller 在2013年发表,此处只作翻译备忘. 数据迁移提供了一套强类型API,用于执行通用的操作,比如CreateIndex("dbo.Blogs& ...

  7. EF Code First 数据迁移操作

    打开执行命令窗体 1.EF Code First创建数据库 PM> Install-Package EntityFramework 2.EF Code First数据库迁移 2.1.生成数据库 ...

  8. MVC code first数据迁移 转

    coptto:http://www.cnblogs.com/miro/p/4164076.html 本篇是相对独立的一篇,主要讲解不丢失数据进行数据库结构升级. 前面我们讲解EF功能时(见第三篇文章) ...

  9. EF code First数据迁移学习笔记(转)

    转自:http://www.cnblogs.com/icyJ/p/migration.html 准备工作 1.新建一个控制台项目, 在"程序包管理控制台"执行 Install-pa ...

随机推荐

  1. mysql图文安装教程(win7 32位 亲测)

    一.下载mysql:http://www.mysql.com/downloads/ 弹出: 你需要有一个 Oracle Web 帐户,没有的话,注册一个: 勾选许可: 输入搜索条件: 下载MySQL ...

  2. @media screen

    参考地址: http://www.swordair.com/blog/2010/08/431/ http://ashaochangfu.blog.163.com/blog/static/1042517 ...

  3. 解决Web Uploader上传文件和图片 延迟和not defined

    1.出现list not define时,var $list = $("#fileList"); 2.选择文件框有延迟,可能是因为选择文件类型过多 mimeTypes: 'imag ...

  4. TableView编辑状态下跳转页面的崩溃处理

    29down votefavorite 12 I have a viewController with a UITableView, the rows of which I allow to edit ...

  5. (并查集) Wireless Network --POJ --2236

    链接: http://poj.org/problem?id=2236 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82830#probl ...

  6. hdu 1000 真水题

    #include <iostream> #include <cstdio> #include <cstring> #include <string.h> ...

  7. java Map集合学习

    学习语法还是从例子着手: FileDao fileDao=new FileBeanDaoImpl(); FileBean fileBean=new FileBean(); listBean=fileD ...

  8. spring集成struts2

    Struts2前身是WebWork,核心并没有改变,其实就是把WebWork改名为struts2,与Struts1一点关系没有. Struts2中通过ObjectFactory接口实现创建及获取Act ...

  9. asp.net core mvc 管道之中间件

    asp.net core mvc 管道之中间件 http请求处理管道通过注册中间件来实现各种功能,松耦合并且很灵活 此文简单介绍asp.net core mvc中间件的注册以及运行过程 通过理解中间件 ...

  10. Abp mvc angular 添加视图

    在LawAndRegulation项目中添加导航路由(Abp添加菜单)对应的客户端页面. 创建文件 客户端页面在Abp模板项目中默认存放在Abp/Main/views文件夹下,在项目中我们创建属于字典 ...