写点什么

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

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

关注

评论

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

开源一夏|基于ArkUI eTS开发的坚果食谱(NutRecipes)

坚果

开源 HarmonyOS OpenHarmony OpenHarmony应用开发 8月月更

易周金融分析 | 银行ATM机智能化改造提速;互联网贷款新规带来挑战

易观分析

金融 分析

10年稳定性保障经验总结,故障复盘要回答哪三大关键问题?|奈雪的茶李道兵

TakinTalks稳定性社区

设计消息队列存储消息数据的MySQL表格

Geek_7a789a

博弈论(Depu)与孙子兵法(42/100)

hackstoic

博弈论

数字化转型实践:世界级2B数字化营销的方法框架

雨果

数字化转型 DaaS数据即服务

表达式引擎在转转平台的实践

转转技术团队

表达式 引擎

JAVA编程规范之安全规约

源字节1号

后端开发 网站开发

Web3.0:构建 NFT 市场(一)

devpoint

区块链 NFT 7月月更

从RabbitMQ平滑迁移到RocketMQ技术实战

vivo互联网技术

RocketMQ RabbitMQ 消息队列 消息中间件 Apache RocketMQ

学习Java的网站

玄兴梦影

Java core

C#/VB.NET 将PPT或PPTX转换为图像

Geek_249eec

C# SVG PPT png VB.NET

语音聊天app源码——语音聊天派对

开源直播系统源码

软件开发 直播系统源码 开源源码 语音聊天源码 一对一语音聊天系统

七日算法先导(一)—— 数组

工程师日月

8月月更

MVVM响应式

flow

8月月更

首届中国计算机学会芯片大会召开,宋继强分享英特尔最新底层技术创新进展

科技之家

如何设计高可用高性能中间件 - 作业

阿拉阿拉幽幽

轮询和长轮询的区别

CRMEB

大众碰到点评的一个字体反爬,落地技术也是绝了

梦想橡皮擦

Python 爬虫 8月月更

未来源码 | 终于有人把大数据、机器学习、数据科学讲明白了

MobTech袤博科技

数据挖掘 机器学习 大数据

用户体验 | 如何度量用户体验 ?

易观分析

用户体验

50W+小程序开发者背后的数据库降本增效实践

石云升

数据库 severless 全球架构师峰会 ArchSummit 8月月更

elasticsearch安装和使用ik分词器

程序员欣宸

Java Elastic Search 8月月更

PanGu-Coder:函数级的代码生成模型

华为云开发者联盟

人工智能

数据中台建设(七):数据资产管理

Lansonli

数据中台 8月月更

新书上市 |《谁在掷骰子?》在“不确定性时代”中确定前行

图灵教育

OpenHarmony高校技术俱乐部计划发布

科技汇

英特尔全方位打造算力基础,助推“算”赋百业

科技之家

mysql进阶(二十二)MySQL错误之Incorrect string value中文字符输入错误问题分析

No Silver Bullet

MySQL 特殊字符 8月月更

Prometheus 监控什么时候可以使用 PushGateway

耳东@Erdong

Prometheus PushGateway 7月月更

重庆市大力实施智能建造,推动建筑业数字化转型,助力“建造强市”

科技热闻

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