写点什么

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

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

关注

评论

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

王海峰:百度500万AI人才培养目标已提前达成

飞桨PaddlePaddle

人工智能 百度 AI BAIDU 文心一言

企业IT部门在集成类项目中扮演的角色

RestCloud

数字化转型 IT ipaas

多IP美国服务器:提升在线业务灵活性与安全性的最佳选择

一只扑棱蛾子

多IP服务器

软件测试学习笔记丨Web自动化测试价值与体系

测试人

软件测试 测试开发 Web自动化测试

聊聊大模型的屏蔽词工程

快乐非自愿限量之名

前端 大模型 屏蔽词

Typora for Mac(Markdown文本编辑器)v1.8.10中文激活版

iMac小白

百度赵世奇:人人都是「超级个体」时代来临

Geek_2d6073

App自动化测试中,如何更好地处理弹窗?

霍格沃兹测试开发学社

MacDroid pro for mac(安卓设备文件传输助手)1.8中文激活版

iMac小白

卓越的声音控制软件SoundSource for mac激活版下载

iMac小白

视频无损放大修复工具:Topaz Video AI v5.0.1激活版

iMac小白

从零到一:如何使用亮数据代理快速收集训练数据打造自己的AIGC大模型

热爱编程的小白白

活动报名 | 如何进行全增量一体的异构数据库实时同步

tapdata

oracle cdc 数据总线

云手机养号与传统的养号模式有何不同

Ogcloud

云手机 海外云手机 云手机海外版 国外云手机 社媒运营

软件测试学习笔记丨业务架构分析思路

测试人

软件测试

Python中两种网络编程方式:Socket和HTTP协议

快乐非自愿限量之名

Python 网络编程

缺陷管理与软件测试的作用

测吧(北京)科技有限公司

测试

天池酒瓶瑕疵检测数据集分析及完整baseline

阿里云天池

阿里云

软件测试基础概念与原则

测吧(北京)科技有限公司

测试

Doris Manager 24.0 版本正式发布!

SelectDB

数据库 大数据 数据仓库 运维管理 集群管理

借助jd.item_get API优化商品名称以提升用户购买意愿

技术冰糖葫芦

api 货币化 API 测试 API 策略

面试官:为什么忘记密码要重置而不是告诉你原密码?

不在线第一只蜗牛

Java 程序员 面试 密码管理

朝着抵抗力最大的路径走-Rank16-强化学习、黑盒攻击、Baseline-SecurityAI

阿里云天池

阿里云

软件开发流程简介及优化方法论:SCRUM、XP、DevOps

测吧(北京)科技有限公司

测试

MySQL 开源到商业(一):Sun 公司收购了 MySQL AB

小猿姐

MySQL 开源

云手机助力舆情监测,智慧引领信息时代

Ogcloud

云手机 海外云手机 舆情监测 群控 云手机群控

你的数据库用对索引了吗?一文揭秘PolarDB XPlan索引选择

阿里云瑶池数据库

数据库 阿里云 polarDB 分布式,

持续集成与持续交付:概念与实践

测吧(北京)科技有限公司

测试

网站结构规范对于独立站的重要性

九凌网络

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