写点什么

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

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

关注

评论

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

CDR2023安装下载教程及CorelDRAW功能介绍

茶色酒

CorelDraw2023

将 Sentinel 熔断限流规则持久化到 Nacos 配置中心

Java 微服务 sentinel nacos Spring Cloud Aliababa

美团前端面试题集锦

coder2028

JavaScript 前端

2023秋招前端面试必会的面试题

coder2028

JavaScript 前端

PGLBox 超大规模 GPU 端对端图学习训练框架正式发布

百度Geek说

百度飞桨 框架学习 企业号 2 月 PK 榜

使用JAVA读取和写入EXCEL文件

石臻臻的杂货铺

Java

即时通讯技术文集(第9期):Java NIO和Netty入门系列 [共19篇]

JackJiang

网络编程 IM 即时通信

阿里大牛详细讲解:Spring Boot 集成Redisson实现分布式锁

Java Spring Boot 分布式锁

MatrixOne 0.7.0: 更稳定,性能更优

MatrixOrigin

数据库 分布式 MatrixOrigin MatrixOne

前端二面经典面试题指南

hellocoder2029

JavaScript 前端

js作用域、作用域链和它的一些优化

hellocoder2029

JavaScript 前端

物联网平台华南1(深圳) 实例化开发实战——实践类

阿里云AIoT

监控 物联网 开发工具 智能硬件 消息中间件

大咖说·图书分享|云存储:释放数据无限价值

大咖说

云存储

模块2作业

王琨琨

行云管家免费吗?安全吗?好用吗?

行云管家

安全 行云管家 行云管家堡垒机

NGINX Ingress Controller 在动态 Kubernetes 云环境中的性能测试

NGINX开源社区

nginx NGINX Ingress Controller 企业号 2 月 PK 榜

ATC:一个能将主流开源框架模型转换为昇腾模型的神奇工具

华为云开发者联盟

人工智能 华为云 昇腾 企业号 2 月 PK 榜 华为云开发者联盟

EasyRecovery2023手机版数据恢复软件下载

茶色酒

EasyRecovery Photo16

js函数式编程讲解

hellocoder2029

JavaScript 前端

字节前端经典面试题(附答案)

hellocoder2029

JavaScript 前端

EasyRecovery16绿色版免费数据恢复软件下载

茶色酒

EasyRecovery16

设备用私有CA签发的X.509证书接入IoT物联网平台——实践类

阿里云AIoT

小程序 网络安全 物联网 智能硬件 数据格式

Nodejs:ESModule和commonjs,傻傻分不清

coder2028

JavaScript 前端

GitHub上线重量级分布式架构原理设计笔记,开源的东西看着就是爽

Java 分布式 微服务

【立哥】【每日一个小知识】铁扇公主和太上老君到底是什么关系?

Lee Chen

MySQL性能指标TPS\QPS\IOPS如何压测?

Java MySQL 性能压测

koa实战

coder2028

JavaScript 前端

PingCAP 唐刘:一个咨询顾问对 TiDB Chat2Query Demo 提出的脑洞

PingCAP

TiDB

全新CorelDRAW2023矢量图软件更新内容介绍

茶色酒

CorelDraw2023

在 CPU 上起舞:聊一聊Linux调度和Go的Runtime调度

蓬蒿

golang goroutine 协程原理 Linux调度 go 信号异步抢占

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