一、为模型更改设置 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编程一些小技巧
CodeFirst进行数据迁移之添加字段的更多相关文章
-
ASP.NET MVC 5 学习教程:数据迁移之添加字段
原文 ASP.NET MVC 5 学习教程:数据迁移之添加字段 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符 ...
-
MVC 使用EF Code First数据迁移之添加字段
PM> add-migration 20161109 -Force 正在为迁移“20161109”搭建基架.此迁移文件的设计器代码包含当前 Code First 模型的快照.在下一次搭建迁移 ...
-
CodeFirst解决数据迁移问题
CodeFirst解决数据迁移问题 分类: 数据库 设计模式 c#2013-04-24 17:56 137人阅读 评论(0) 收藏 举报 工程用的MVC + Entity Framework,根据Co ...
-
Django 向数据表中添加字段方法
在模型order中添加字段discount字段,并给予初始值0 方法: 先在models.py中修改模型 添加 discount = models.DecimalField(max_digits=8, ...
-
MVC5+EF6+MYSQl,使用codeFirst的数据迁移
之前本人在用MVC4+EF5+MYSQL搭建自己的博客.地址:www.seesharply.com;遇到一个问题,就是采用ef的codefirst模式来编写程序,我们一般会在程序开发初期直接在glob ...
-
实现CodeFirst自动数据迁移无需命令
本主题假设您掌握了实体框架中 Code First 迁移的基本知识. 借助自动迁移功能,您无需对您所做的每一个更改都在程序包管理器控制台中运行Update-Database 命令. 启用迁移 只需执行 ...
-
实现CodeFirst自动数据迁移无需手动执行命令
本主题假设您掌握了实体框架中 Code First 迁移的基本知识. 借助自动迁移功能,您无需对您所做的每一个更改都在程序包管理器控制台中手动Update-Database . 启用迁移 只需执行一次 ...
-
EF Core数据迁移操作
摘要 在开发中,使用EF code first方式开发,那么如果涉及到数据表的变更,该如何做呢?当然如果是新项目,删除数据库,然后重新生成就行了,那么如果是线上的项目,数据库中已经有数据了,那么删除数 ...
-
EntityFramework Code First便捷工具——数据迁移
使用EntityFramework Code First开发,数据迁移是一个不得不提的技术. 在我们的开发过程中,难免需要对模型进行改进,模型改进后,会导致实体集与数据库不一致,当然我们可以通过删除数 ...
随机推荐
-
kindeditor的简单使用
上传到云: 一.引入kindeditor <%@ page language="java" contentType="text/html; charset=UTF- ...
-
Linux下gdb使用整理记录
1.创建cpp文件:vim sourcefile.cpp 2.生成可执行文件:g++ -g sourcefile.cpp -o exename ------据说是要必须加上-g参数,否则不可调试 3. ...
-
应用highcharts做直观数据统计
最近在看上了统计类的东东,发现以前端图表神器:highcharts Highcharts是一款功能强大.开源.美观.图表丰富.兼容绝大多数浏览器的纯Js图表库,Highcharts支持的图表类型有直线 ...
-
转载: jQuery事件委托( bind() \ live() \ delegate()) [委托 和 绑定的故事]
转载:http://blog.csdn.net/zc2087/article/details/7287429 随着DOM结构的复杂化和Ajax等动态脚本技术的运用,事件委托自然浮出了水面.jQuery ...
-
Java泛型和集合之泛型VS模板
Java的泛型很像C++中的模板,说到Java 泛型和C++中的模板的关系时,有两个重要的方面需要被考虑到:语法和语义.语法看起来是相似的,可是语义却明显是不同的. 在语法上讲,选择尖括号 是因为他 ...
-
【Apache KafKa系列之一】KafKa安装部署
kafka是一种高吞吐量的分布式发布订阅消息系统,她有如下特性: 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能. 高吞吐量:即使是非常普通的 ...
-
vue2使用高德地图vue-amap定位以及AMapUI标注
前言 最近在vue里使用了高德地图vue-amap以及AMapUI,我在这里就说下如何在vue2里引入vue-amap和AmapUI以及使用定位 (在这里默认你已经安装了vue-cli) 安装 npm ...
-
C语言最后一次作业——总结报告
1.当初你是如何做出选择计算机专业的决定的?经过一个学期,你的看法改变了么,为什么? 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗? 为什么? 首先是因为自己想学跟做动画沾边的专业(动画专业因为某 ...
-
简单比较init-method,afterPropertiesSet和BeanPostProcessor
一.简单介绍 1.init-method方法,初始化bean的时候执行,可以针对某个具体的bean进行配置.init-method需要在applicationContext.xml配置文档中bean的 ...
-
asp.netmvc 三层搭建一个完整的项目
接下来用 asp.net mvc 三层搭建一个完整的项目: 架构图: 使用的数据库: 一张公司的员工信息表,测试数据 解决方案项目设计: 1.新建一个空白解决方案名称为Company 2.在该解决方案 ...