BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

使用Code First Migrations依据代码更新数据库结构

| 作者 Jenni Konrad 关注 0 他的粉丝 ,译者 侯伯薇 关注 0 他的粉丝 发布于 2011年12月9日. 估计阅读时间: 3 分钟 | AICon 关注机器学习、计算机视觉、NLP、自动驾驶等20+AI热点技术和最新落地成功案例。

ADO.NET团队最近发布了Code First Migrations Beta 1 for Entity Framework (EF)。该程序包已经在NuGet提供,位于EntityFramework.Migrations名称下。

应用程序开发领域中的代码先行(Code First)方法指的是先在代码中创建对象模型,然后按照模型生成数据库结构。这与“模型先行开发”类似,那种方式会使用Visual Studio中的EF设计器创建数据模型。(想要查看代码先行开发方式的实际效果,你可以访问ADO.NET团队的EF 4.2代码先行演练。)

Code First Migrations这种工具可以基于代码中所做的改变,以递增的方式更新已存的数据库结构。这可以按照自动或者手动的方式进行(微软将其称之为“带有魔力的”和“没有魔力的”迁移),采用哪种方式依赖于对模型所做出的更新的类型。能够自动完成的变更类型有:

  • 增加属性或者类
  • 对属性和类重命名(想要使其正常工作,需要编写一些脚本)
  • 对列(column)或者表(table)重命名,而不对属性或类重命名
  • 删除属性

在任何一种情况下,执行命令Update-Database就会自动把变更应用到数据库结构上。

对于所有其它更新,Code First Migrations会使用Add-Migration命令创建变更数据库的脚本。这些迁移操作都会保存,并加上时间戳,让我们可以回滚到数据库结构的上一个版本。除了能够对数据库结构做出变更之外,迁移操作中还可以包括用于操作数据的SQL命令。想要提交迁移操作,你只需要再次运行Update-Database命令。为了对数据库进行复制,Code First Migrations也可以使用Update-Database来创建SQL脚本:

Update-Database –TargetDatabase:"NewDatabase" –Script

ADO.Net团队已经提供了使用Code First Migrations的“没有魔力”“具有魔力的”两种方法的演练,你可以从中获得更多信息。

微软声称,这个beta版本只包含了Code First Migrations的Visual Studio实现,他们计划还要引入命令行和MSDeploy的版本。

查看英文原文:Code First Migrations Updates Data Structure From Code

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT