EntityFramework:迁移工具入门
背景
刚毕业做项目的时候,没有用“迁移”这个概念,系统发布和更新的过程让人非常痛苦,在学习 Ruby On Rails 的过程解除了“迁移”,以后的所有项目都会先确定好“迁移”的方案,本文介绍一下EntityFramework5提供的迁移工具。
之前是如何做的?
原始的迁移脚本

脚本格式
--执行开始--
Alter Table RcExaminees ADD [IntroducerOfEmployeeId] uniqueidentifier null
--执行结束--
--撤销开始--
Alter Table RcExaminees DROP COLUMN [IntroducerOfEmployeeId]
--撤销结束--
说明
用C#开发一个迁移工具,按照一些参数(向上迁移、向下迁移和迁移范围等)执行脚本就行了。
EntityFramework5提供了更好的选择
本文给出常用的命令和参数,详情可以参考:http://www.cnblogs.com/happyframework/p/3308678.html。
打开【程序包管理器控制台】


启用迁移
Enable-Migrations -ProjectName Happy.Examples.OrderManagement.EntityFramework -StartUpProjectName Happy.Examples.OrderManagement.EntityFramework
-ProjectName:DbContext所在的项目。
-StartUpProjectName:准备将迁移文件存放到其中的项目。
添加迁移
Add-Migration Initialize -ProjectName Happy.Examples.OrderManagement.EntityFramework -StartUpProjectName Happy.Examples.OrderManagement.EntityFramework
更新数据库
Update-Database -ProjectName Happy.Examples.OrderManagement.EntityFramework -StartUpProjectName Happy.Examples.OrderManagement.EntityFramework
注意:这里没有指定-ConnectionStringName,默认会用-StartUpProjectName指定的项目中的DbContext的类名作为参数值,在-StartUpProjectName指定的项目配置文件中配置如下内容:
<connectionStrings>
<add name="OrderManagementUnitOfWork" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=E:\Coding\Happy\Projects\Happy.Examples.OrderManagement\Happy.Examples.OrderManagement.EntityFramework\Database\OrderManagement.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
最终效果

备注
EntityFramework5提供的迁移工具能满足我们几乎所有要求,没必要再开发自己的迁移工具了,详细学习还是参考这两篇文章:
- http://weblogs.asp.net/fredriknormen/archive/2012/02/15/using-entity-framework-4-3-database-migration-for-any-project.aspx。
- http://www.cnblogs.com/happyframework/p/3308678.html。
EntityFramework:迁移工具入门的更多相关文章
- IdentityServer4 中文文档 -8- (快速入门)设置和概览
IdentityServer4 中文文档 -8- (快速入门)设置和概览 原文:http://docs.identityserver.io/en/release/quickstarts/0_overv ...
- IdentityServer-Setup and Overview
设置和概述 有两种方式创建一个IdentityServer 项目: 从零开始 使用Visual Studio的ASP.NET Identity模板 如果是从零开始,我们提供一序列的帮助及内存存储,所以 ...
- IdentityServer4中文文档
欢迎IdentityServer4 IdentityServer4是ASP.NET Core 2的OpenID Connect和OAuth 2.0框架. 它在您的应用程序中启用以下功能: 认证即服务 ...
- 基于Asp.Net Core Mvc和EntityFramework Core 的实战入门教程系列-1
来个目录吧: 第一章 第二章 第三章 暂时就这么多.后面路线更新吧 本系列文章为翻译加上我个人的使用心得理解,希望帮助热爱学习的程序员. 珍重声明:本系列文章会跟原文有点出入,去掉了罗里吧嗦的文字. ...
- 基于Asp.Net Core Mvc和EntityFramework Core 的实战入门教程系列-2
来个目录吧: 第一章 第二章 第三章 暂时就这么多.后面路线更新吧 Entity Framework Core Nuget包管理 如果你创建项目的时候启用了个人身份验证的话,项目中就已经包含了EFCo ...
- IdentityServer4 中文文档 -16- (快速入门)使用 EntityFramework Core 存储配置数据
IdentityServer4 中文文档 -16- (快速入门)使用 EntityFramework Core 存储配置数据 原文:http://docs.identityserver.io/en/r ...
- entity framework 新手入门篇(4)-entity framework扩展之 entityframework.extended
对于EF的操作,我们已经有了大概的了解了,但对于实战来说,似乎还欠缺着一些常用的功能,那就是批量的删除,更新数据. 承接上面的部分,我们有一个叫做House的数据库,其中包含house表和seller ...
- entityframework 入门-来自微软
必备条件 要完成本演练,需要安装 Visual Studio 2010 或 Visual Studio 2012. 如果使用的是 Visual Studio 2010,还需要安装 NuGet. 1.创 ...
- 基于Asp.Net Core Mvc和EntityFramework Core 的实战入门教程系列-3
来个目录吧: 第一章 第二章 第三章 暂时就这么多.后面路线更新吧 创建.查询.更新.删除 这章主要讲解使用EF完成 增删改查的功能. 自定义"详情信息"页面 我们通过基架生成的代 ...
随机推荐
- django 解决csrf跨域问题
1.中间件代码 [root@linux-node01 mysite]# tree middlewares middlewares ├── base.py ├── base.pyc ├── cors.p ...
- linux抓包工具tcpdump基本使用
tcpdump 是一款灵活.功能强大的抓包工具,能有效地帮助排查网络故障问题. tcpdump 是一个命令行实用工具,允许你抓取和分析经过系统的流量数据包.它通常被用作于网络故障分析工具以及安全工具. ...
- poj 2828(线段树单点更新)
Buy Tickets Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 18561 Accepted: 9209 Desc ...
- cocos2dx2.x 创建项目
cocos2d-x下载地址:http://www.cocos2d-x.org/download 2.0之后的创建项目比较easy了 第一步,首先 cd cocos2d-x-2.2.1/tools/pr ...
- JS 判断浏览器类型,获取位置信息,让手机震动
判断是否是安卓 var isAndroid = /Android/i.test(navigator.userAgent); 判断是否是IOS系统 var isIOS = /iPhone|iPad|iP ...
- IntelliJ IDEA 编译程序出现 非法字符 的 解决方法(转)
百度到很多方法,比如(删了文件重新建:先改成GBK再UTF8:粘贴到notpad++上改utf8),但都没有解决问题.下面这种方法确实有效,先记下来,如果有其他好方法将来在补充…… 文章来源: ht ...
- 洛谷P3435 [POI2006]OKR-Period of Words [KMP]
洛谷传送门,BZOJ传送门 OKR-Period of Words Description 一个串是有限个小写字符的序列,特别的,一个空序列也可以是一个串. 一个串P是串A的前缀, 当且仅当存在串B, ...
- Linux_x86_Pwn溢出漏洞
基础栈溢出:未开启任何保护的程序 漏洞程序源码 #include <stdio.h>#include <stdlib.h>#include <unistd.h>v ...
- Highcharts实现走势图
Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表,并且免费提供给个人学习.个人网站和非商业用途使用.HighCh ...
- MySQL笔记(四)之内建函数
AVG() 函数 AVG 函数返回数值列的平均值.NULL 值不包括在计算中. 语法: SELECT AVG(列) FROM 表: COUNT() 函数 COUNT() 函数返回匹配指定条件的行数. ...