写点什么

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

  • 2011-12-08
  • 本文字数:811 字

    阅读完需:约 3 分钟

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

2011-12-08 01:293710
用户头像

发布了 340 篇内容, 共 147.1 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

深入解析 TiFlash丨多并发下线程创建、释放的阻塞问题

PingCAP

小鸟飞行游戏【附源码】

JavaPub

git bisect:让你闭眼都能定位疑难 bug的利器

华为云开发者联盟

开发 bug git bisect 二分法定位

揭秘华为云GaussDB(for Influx)最佳实践:hint查询

华为云开发者联盟

数据库 倒排索引 GaussDB(for Influx) hint 单时间线

俄罗斯方块【附源码】

JavaPub

超级马里奥【附源码】

JavaPub

吃豆人游戏【附源码】

JavaPub

上新了 亚麻云 | 远程办公有点上头?解锁云上应用现代化的奥秘

亚马逊云科技 (Amazon Web Services)

远程办公 应用

给小白的 PG 容器化部署教程(上)

RadonDB

postgresql 容器化 数据库·

固态硬盘和机械硬盘的区别(7大区别,简单易懂)

源字节1号

软件开发 前端开发 后端开发 小程序开发

Java 实现 捕鱼达人 小游戏【附源码】

JavaPub

Java 实现 1024 小游戏【附源码】

JavaPub

关于敏捷测试象限的“秘密”

BY林子

敏捷开发 敏捷测试 测试策略

【技术干货】代码示例:使用 Apache Spark 连接 TDengine

TDengine

数据库 tdengine 开源 时序数据库

中科大脑知识图谱平台建设及业务实践

NebulaGraph

图数据库 知识图谱

Java实现一个坦克大战的小游戏【附源码】

JavaPub

直击中小企业转型通用痛点 联想百应推出智能会议解决方案

极客天地

大数据培训数仓实践 Kimball 维度建模

@零度

数仓 大数据开发

Java 实现 植物大战僵尸 小游戏【附源码】

JavaPub

Java

Java 实现 贪吃蛇 小游戏【附源码】

JavaPub

A New ETL Language -- Easy SQL

Bright

数据开发 ETL 大数据开发 EasySQL

艾莫尔研究院基于Karmada的落地实践

华为云开发者联盟

云原生 Karmada 自动化集群管理

Java实现一个打飞机的小游戏【附源码】

JavaPub

大咖说·图书分享|阿里官方为你分享内部测试之道

大咖说

阿里巴巴 测试 开发

编程,不止有代码,还有艺术

华为云开发者联盟

数据库 倒排索引 GaussDB(for Influx) hint

VPN的应用场景

源字节1号

小程序开发

亚信安慧AntDB数据库斩获“最佳数据库品牌”大奖

亚信AntDB数据库

3D赛车【附源码】设计实现

JavaPub

常用的 Lambda 表达式案例解析,工作中都会用到!

CRMEB

【等保测评】等保测评师怎么考,前景怎么样?

行云管家

网络安全 IT运维 等保测评 等保测评师

【等保测评】2022年北京正规等保测评机构新名单公布

行云管家

等保测评 北京

使用Code First Migrations依据代码更新数据库结构_.NET_Jenni Konrad_InfoQ精选文章