Fork me on GitHub
EntityFramework5提供的迁移工具

目录

背景之前是如何做的?EntityFramework5提供了更好的选择备注

背景返回目录

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

之前是如何做的?返回目录

原始的迁移脚本

脚本格式

复制代码
 1 --执行开始--
 2 
 3     Alter Table RcExaminees ADD [IntroducerOfEmployeeId] uniqueidentifier null
 4 
 5 --执行结束--
 6 
 7 --撤销开始--
 8     Alter Table RcExaminees DROP COLUMN [IntroducerOfEmployeeId]
 9 
10 --撤销结束--
复制代码

说明

用C#开发一个迁移工具,按照一些参数(向上迁移、向下迁移和迁移范围等)执行脚本就行了。

EntityFramework5提供了更好的选择返回目录

本文给出常用的命令和参数,详情可以参考:http://www.cnblogs.com/happyframework/p/3308678.html

打开【程序包管理器控制台】

启用迁移

1 Enable-Migrations -ProjectName Happy.Examples.OrderManagement.EntityFramework -StartUpProjectName Happy.Examples.OrderManagement.EntityFramework

-ProjectName:DbContext所在的项目。

-StartUpProjectName:准备将迁移文件存放到其中的项目。

添加迁移

1 Add-Migration Initialize -ProjectName Happy.Examples.OrderManagement.EntityFramework -StartUpProjectName Happy.Examples.OrderManagement.EntityFramework

更新数据库

1 Update-Database -ProjectName Happy.Examples.OrderManagement.EntityFramework -StartUpProjectName Happy.Examples.OrderManagement.EntityFramework

注意:这里没有指定-ConnectionStringName,默认会用-StartUpProjectName指定的项目中的DbContext的类名来参数值,在-StartUpProjectName指定的项目配置文件中配置如下内容:

1   <connectionStrings>
2     <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"/>
3   </connectionStrings>

最终效果

备注返回目录

EntityFramework5提供的迁移工具能满足我们几乎所有要求,没必要再开发自己的迁移工具了,详细学习还是参考这两篇文章:

  1. http://weblogs.asp.net/fredriknormen/archive/2012/02/15/using-entity-framework-4-3-database-migration-for-any-project.aspx
  2. http://www.cnblogs.com/happyframework/p/3308678.html

 

 
posted on 2013-09-09 12:46  HackerVirus  阅读(165)  评论(0编辑  收藏  举报