目录
背景之前是如何做的?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:CodingHappyProjectsHappy.Examples.OrderManagementHappy.Examples.OrderManagement.EntityFrameworkDatabaseOrderManagement.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/> 3 </connectionStrings>
最终效果
备注返回目录
EntityFramework5提供的迁移工具能满足我们几乎所有要求,没必要再开发自己的迁移工具了,详细学习还是参考这两篇文章:
分类: Entity Framework