一步一步学EF系列三【数据迁移】
我们每篇的内容都不多,所以希望在学习的过程中最后能亲自敲一下代码 这样更有利于掌握。
我们现在接着上篇的例子,我们现在给随便的表增加一个字段 CreateTime 创建日期 运行一下 看看会怎么样
修改实体类,代码给大家分享一下
public partial class Post
{
/// <summary>
/// 随笔的主键id
/// </summary>
public int PostId { get; set; }
// 随笔的标题
public string PostTitle { get; set; }
/// <summary>
/// 操作人
/// </summary>
public int BlogUserId { get; set; } /// <summary>
/// 创建日期
/// </summary>
public DateTime CreateTime { get; set
; }
/// <summary>
/// 延迟加载博客用户
/// </summary>
public virtual BlogUser BlogUser { get; set; }
}
运行一下:

你会看到如上的这个错误。这章本来应该作为第2篇,因为如果你亲自试过了的话,当你修改实体的属性关系,也会同样报这个错
如果你也出现了这个错误,恭喜你 ,你正在进步!
看字面的意思 你也能明白,他让我们使用Migrations进行数据库更新迁移。
那具体怎么操作呢,那我们就直接开始了!!!
启用自动迁移
一、在 Package Manager Console 下运行命令 Enable-Migrations,完成之后你就会看到如下:
生成了两个类:

这两个类干什么的呢?暂时先不解释 后面的话会在讲解的。这里我分享一个关于迁移的博文有兴趣可以看一下
没兴趣的继续往下看!!
二、EF6 本身已经集成了Migrations 那我们主要演示的是手动去完成迁移的工作,实现在应用程序启动时自动升级
1) 我没有采用上面的方式,我是直接新建了一个Configuration类
2)我们直接来看代码
public class Configuration : DbMigrationsConfiguration<BlogDbContext>
{
/// <summary>
/// 初始化一个<see cref="MigrationsConfiguration"/>类型的新实例
/// </summary>
public Configuration()
{
//启用自动迁移
AutomaticMigrationsEnabled = true;
//获取或设置一个值表示如果在自动数据丢失是可以接受的 [慎重设置]
AutomaticMigrationDataLossAllowed = true;
}
}核心代码就两句,简单吧! 是不是觉得学习EF so easy! 不能用so easy因为我们这里说的都是最简单的。要想学深入还是由难度的。
三、然后在Global.asax里面添加一下代码,代表应用程序初始化的时候把数据库更新为最新的办法

四、运行效果

整篇文章中,需要写的代码也就不超过5行吧,所以也用了图片来替代,为了就是让学习的你能动手来试一下。
大家也可以加入QQ群进行交流(435498053)。
作者:STONE刘先生 出处:http://www.cnblogs.com/liupeng/
本文版权归作者和博客园共有,欢迎转载。未经作者同意下,必须在文章页面明显标出原文链接及作者,否则保留追究法律责任的权利。
如果您认为这篇文章还不错或者有所收获,可以点击右下角的【推荐】按钮,因为你的支持是我继续写作,分享的最大动力!
一步一步学EF系列三【数据迁移】的更多相关文章
- [Python] 文科生零基础学编程系列三——数据运算符的基本类别
上一篇:[Python] 文科生零基础学编程系列二--数据类型.变量.常量的基础概念 下一篇: ※ 程序的执行过程,就是对数据进行运算的过程. 不同的数据类型,可以进行不同的运算, 按照数据运算类型的 ...
- EF架构~CodeFirst数据迁移与防数据库删除
回到目录 本文介绍两个概念,防数据库自动删除,这是由于在code first模式下,当数据实体发生变化时,会对原来数据库进行删除,并将新数据表添加进来,但这对于我们的运营环境数据库,是万万不能接受的, ...
- EF Code First 数据迁移配置
这里我想讲清楚code first 数据迁移的两种模式,还有开发环境和生产环境数据迁移的最佳实践. 1.1 数据迁移综述 EF Code first 虽然已经有了几种不同的数据库初始化策略,但是大部分 ...
- mongodb系列~mongodb数据迁移
一 简介:今天来聊聊mongo的数据迁移二 迁移 1 具体迁移命令 nohup mongodump --port --db dbname --collection tablename --qu ...
- EF Code First 数据迁移操作
打开执行命令窗体 1.EF Code First创建数据库 PM> Install-Package EntityFramework 2.EF Code First数据库迁移 2.1.生成数据库 ...
- 一步一步学EF系列【4、升级篇 实体与数据库的映射】live writer真坑,第4次补发
前言 之前的几篇文章,被推荐到首页后,又被博客园下了,原因内容太少,那我要写多点呢,还是就按照这种频率进行写呢?本身我的意图这个系列就是想已最简单最容易理解的方式进行,每篇内容也不要太多,这样初学者容 ...
- 一步一步学EF系列【5、升级篇 实体与数据库的映射】live writer真坑,第4次补发
前言 之前的几篇文章,被推荐到首页后,又被博客园下了,原因内容太少,那我要写多点呢,还是就按照这种频率进行写呢?本身我的意图这个系列就是想已最简单最容易理解的方式进行,每篇内容也不要太多,这样初学者容 ...
- 一步一步学EF系列3【升级篇 实体与数据库的映射】
之前的三张为基础篇,如果不考虑架构问题,做一般的小程序,以足够用了.基本的增删改查也都有了.但是作为学习显然是不够的.通过之前三章的学习,有没有发现这样写有什么问题,有没有觉得繁琐的?可能有人会说,之 ...
- 一步一步学EF系列四【升级篇 实体与数据库的映射】
之前的三张为基础篇,如果不考虑架构问题,做一般的小程序,以足够用了.基本的增删改查也都有了.但是作为学习显然是不够的.通过之前三章的学习,有没有发现这样写有什么问题,有没有觉得繁琐的?可能有人会说,之 ...
随机推荐
- 【BZOJ】1627: [Usaco2007 Dec]穿越泥地(bfs)
http://www.lydsy.com/JudgeOnline/problem.php?id=1627 裸bfs不解释.. #include <cstdio> #include < ...
- 求出每个team粉丝数最多的3个国家
有这么个表 fans(team,nationality,fanCount) 'Barcelona','Germany',12000'Barcelona','Spain',18000'Barcelona ...
- C++ STL迭代器与索引相互转换
0 前言 C++ STL提供了vector.list等模板容器,极大地方便了编程使用. “遍历”是对容器使用的最常用的操作. 使用迭代器来遍历是最好最高效的遍历方法. 当然,对于有些容器的遍历除了使用 ...
- AuthorizeAttribute示例
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- Ubuntu执行su后输入密码结果认证失败--解决办法:sudo passwd修改命令
- ios浅谈关于nil和 NIL区别及相关问题
本文转载至:http://blog.csdn.net/guozh/article/details/8469131 1.nil和null从字面意思来理解比较简单,nil是一个对象,而NULL是一个值,我 ...
- 通过chrome浏览器调试手机页面(IOS和Android)
开发PC页面的时候使用chrome浏览器的开发者工具,可以很容易的捕获到页面的dom元素,并且可以修改样式,方便调试,但是手机上却很麻烦,因为手机上没有办法直接打开开发者工具查看元素.其实可以通过将设 ...
- 电力项目十三--js添加浮动框
修改page/menu/loading.jsp页面 首先,页面中引入浮动窗样式css <!-- 浮动窗口样式css begin --> <style type="text/ ...
- Hibernate更新数据报错:a different object with the same identifier value was already associated with the session: [com.elec.domain.ElecCommonMsg#297e35035c28c368015c28c3e6780001]
使用hibernate更新数据时,报错 Struts has detected an unhandled exception: Messages: a different object with th ...
- js 连等赋值 分析
JavaScript权威指南-第6版 4.11 赋值表达式 提到了连等赋值的情况,但是解释的不够详细,所以在此总结下: 首先看书上最重要的一句话: 这句话总结下就是: A = B ; // 整个表达式 ...
