EF Code First 数据库迁移Migration剖析
1.简介
Entity Framework 的Code First 方式,提供了一种方式:编写模型Model,生成模型变更,根据模型变更修改数据库。
而其所以来的环境就是强大的Nuget,如果还在是VS2010一下的同学,请不要往下看了,将无一益处。
2.操作步骤
1)建立或修改Model,即实体类;
这里演示修改:
public class BootStrapLists
{
public int ID { get; set; }
public string Title { get; set; } [DataType(DataType.MultilineText)]
public string Description { get; set; } /// <summary>
/// 新增一个时间字段
/// </summary>
public DateTime CreateDate { get; set; }
}
2)建立或修改ModelMap;
public class BootStrapListsMap : EntityTypeConfiguration<BootStrapLists>
{
public BootStrapListsMap()
{
ToTable("");
HasKey(zw => zw.ID).Property(zw => zw.ID).HasColumnName("ID");
Property(zw => zw.Title).HasColumnName("Title");
Property(zw => zw.Description).HasColumnName("Description");
//新增
Property(zw => zw.CreateDate).HasColumnName("CreateDate");
}
}
3)在OnModelCreate时增加Map;
public DbSet<BootStrapLists> BootStrapLists { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new BootStrapListsMap());
//dynamically load all configuration
4)使用命令Add-Migration
如果是第一次使用,则请先使用:
Enable-Migrations
在生成了
红色框所示的文件和文件夹
继续使用命令:
Add-Migration Tests
其中,Tests为自定义名称;

生成迁移文件:

5)使用命令Update-DataBase
Update-DataBase
迁移原理:查询数据库的表,__MigrationHistory,遍历Migrations文件夹下的所有文件,如果文件不在__MigrationHistory表内,那么就执行迁移。
Eg: 如果20141104233562_Tests不在数据库内,则执行迁移。
11)初始数据库:

22)执行:

33)执行之后的数据库:

修改表的结果:

6)深究
public partial class Tests : DbMigration
{
public override void Up()
{
AddColumn("dbo.BootStrapLists", "CreateDate", c => c.DateTime(nullable: true));
} public override void Down()
{
}
}
类,DbMigration中邮很多API,可以直接修改数据库!
EF Code First 数据库迁移Migration剖析的更多相关文章
- 3.3 使用Code First数据库迁移
当Entity Framework Code First的数据模型发生异动时,默认会引发一个System.InvalidOpertaionException异常.一种解决方法是在Global.asax ...
- EF Code First 数据迁移操作
打开执行命令窗体 1.EF Code First创建数据库 PM> Install-Package EntityFramework 2.EF Code First数据库迁移 2.1.生成数据库 ...
- Code First 数据库迁移
当 Entity Framework Code First 的数据模型发生改变时,默认会引发一个System.InvalidOperationException 的异常.解决方法是使用DropCrea ...
- 使用 Code First 数据库迁移
当 Entity Framework Code First 的数据模型发生改变时,默认会引发一个System.InvalidOperationException 的异常.解决方法是使用DropCrea ...
- Entity Framework 5.0系列之Code First数据库迁移
我们知道无论是"Database First"还是"Model First"当模型发生改变了都可以通过Visual Studio设计视图进行更新,那么对于Cod ...
- EF Code First数据库映射规则及配置
EF Code First数据库映射规则主要包括以下方面: 1.表名及所有者映射 Data Annotation: 指定表名 1 using System.ComponentModel.DataAnn ...
- EF Code First 数据迁移配置
这里我想讲清楚code first 数据迁移的两种模式,还有开发环境和生产环境数据迁移的最佳实践. 1.1 数据迁移综述 EF Code first 虽然已经有了几种不同的数据库初始化策略,但是大部分 ...
- MVC VS2012 Code First 数据库迁移教程
1.在“服务资源管理器”连接数据库 2.打开工具-Nuget程序包管理器“程序包管理器控制台” 3.控制台输入命令:PM> Enable-Migrations -StartUpProjectNa ...
- ASP.NET MVC 4下 Code First 数据库迁移
一.命令开启 1.打开控制台:视图->其他窗口->程序包管理器控制台: 2.启动数据库迁移,执行命令:enable-migrations 创建成功后会新增migrations目录等. 若 ...
随机推荐
- LR 测试数据库总结
今天工作中需要对mysql进行性能测试 我尝试用LR来做:但是mysql需要现在电脑上安装一个OBDC的mysql驱动器,然后在电脑的管理工具中的数据源中加入这个mysql驱动,测试连接数据库成功,O ...
- HDU 1025 Constructing Roads In JGShining's Kingdom(求最长上升子序列nlogn算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1025 解题报告:先把输入按照r从小到大的顺序排个序,然后就转化成了求p的最长上升子序列问题了,当然按p ...
- 搭建DNS服务器
导读 Linux下架设DNS服务器通常是使用Bind程序来实现的.Bind是一款实现DNS服务器的开放源码的软件.DNS即域名系统,主要功能是将人们易于记忆的Domain Name(域名)与不易记忆的 ...
- 开发jquery tab 插件
开发最简单的效果- -,基本构架 html,可以换更有意义的结构,这里demo,就简单写,不考虑SEO <div id="tab-hd"> <div class= ...
- mysql如何用order by 自定义排序
mysql如何用order by 自定义排序 id name roleId aaa bbb ccc ddd eee ,MySQL可以通过field()函数自定义排序,格式:field(value,st ...
- 【转】cas注册后自动登录
本文转自:http://denger.iteye.com/blog/805743 1. 关于CAS的介绍不再累述,我想涉及过SSO同学应该都会对该框架所有了解,我们目前项目采用的CAS Server ...
- 转载一篇关于ios copy的文章
由于原文创作时间较早,一些内容不实用了,我对其进行了加工,去掉了一部分内容,添加了一点注释. 原文连接 http://www.cnblogs.com/ydhliphonedev/archive/201 ...
- Ubuntu及Windows ADB设备no permissions的解决方案
不少人曾在Windows下及Ubuntu下都遇到过Android设备无法识别的情况,就是run as Android Application的时候,target显示"??????" ...
- image warping
- Linux命令行下创建纳入版本控制下的新目录
[root@ok 资料库]# svn mkdir test A test [root@ok 资料库]# svn ci -m "mkdir test" Adding 资料库/test ...