写点什么

使用 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:293466
用户头像

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

关注

评论

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

鸿蒙高质量代码静态检测200条三

龙儿筝

鸿蒙

iLogtail 开源贡献人物专访:技术之路无坦途,与社区共同成长

阿里巴巴云原生

阿里云 云原生 iLogtail

鸿蒙网络编程系列47-仓颉版UDP客户端

长弓三石

DevEco Studio 开发实例 HarmonyOS NEXT 网络与连接

2024年AI办公工具API:优化工作流程的智能解决方案

幂简集成

API

即时通讯技术文集(第42期):直播技术合集(Part2) [共13篇]

JackJiang

即时通讯;IM;网络编程

百度世界大会:AI时代的公司官网来了 会后首日新增582家企业合作

极客天地

深入探索淘宝API:电商开发的高效策略与实践

代码忍者

API 接口 pinduoduo API

Microsoft Phone System Direct Routing需要准备的

cts喜友科技

通信 通信云 通讯

AI时代的研发生产关系,是否有新的可能?

思码逸研发效能

第74期 | GPTSecurity周报

云起无垠

GitLab 如何降级安装?

极狐GitLab

哇喔!20种单例模式的实现与变异总结

威哥爱编程

Java 设计模式 单例模式 JavaEE

Apache Doris 2.1.7 版本正式发布

SelectDB

数据库 大数据 数据仓库 存算分离 湖仓一体

数据库运维实操优质文章文档分享(含Oracle、MySQL等) | 2024年10月刊

墨天轮

MySQL 数据库 oracle sql postgresql

鸿蒙高质量代码静态检测200条四

龙儿筝

鸿蒙

淘宝APP商品详情深度解析:item_get_app精准提取标题、价格、销量、描述及SKU信息,助力竞品分析与推广策略优化

代码忍者

API 接口 pinduoduo API

淘宝商品关键词API接口:智能分析关键词数据,提升电商运营效率

代码忍者

API 接口 pinduoduo API

如何使用PHP开发API接口?

科普小能手

php API php扩展 API接口 API 测试

南京大学 鲲鹏昇腾科教创新孵化中心揭牌,引领高校科研生态新模式

极客天地

公链数字钱包开发与加密钱包App原生开发

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

区块链NFT项目开发流程

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

操作系统大会2024即将在京召开,见证openEuler发展新里程

科技热闻

大选获胜,盘点特朗普相关加密货币资产

TechubNews

5分钟搞懂 Golang 数据库连接管理

俞凡

golang

Serverless 微服务治理神器: 阿里云 SAE 全链路灰度揭秘

阿里巴巴云原生

阿里云 Serverless 云原生

《实力见证,卓越前行 ——伊克罗德信息荣获 Amazon Redshift Delivery 认证》

伊克罗德信息科技

大数据 Amazon

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