写点什么

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

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

关注

评论

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

快速实践: 通过 Flink CDC 一键整库同步 MongoDB 到 Paimon

Apache Flink

大数据 flink 实时计算

国内如何充值 openai API key 详细教程

跨境

openai ChatGPT ChatGPT4

1.4亿人都在用|伊对APP x 阿里云PolarDB:这一对,天生配

阿里云瑶池数据库

数据库 阿里云 云原生 Servless

低代码:拒绝重复、低价值的工单循环开发

互联网工科生

软件开发 造轮子 JNPF

跨境电商测评攻略及其工具海外云手机的介绍

Ogcloud

电商 跨境电商

亚马逊云科技 re:Invent 2023 产品体验:亚马逊云科技产品应用实践 王炸产品 Amazon Q,你的 AI 助手

亚马逊云科技 (Amazon Web Services)

re:Invent 生成式人工智能 Amazon CodeWhisperer Amazon Q

苹果证书p12和描述文件的创建方法

阿里云 ACK One Serverless Argo 助力深势科技构建高效任务平台

阿里巴巴云原生

阿里云 Serverless 云原生

EMQ 与 Confluent 建立全球合作伙伴关系:推动 MQTT 与 Kafka 无缝集成

新消费日报

云智·智算大会|大模型安全解决方案持续升级

百度安全

LangChain初学者指南

俞凡

人工智能 ChatGPT LLM

软件测试/测试开发丨cookie 复用 学习笔记

测试人

软件测试

onlyfan怎么绑卡??

跨境

VISA only

有什么好用的C/C++源代码混淆工具?

Geek_66e2f3

阿里巴巴中国站1688商品评论API:实时数据获取与应用的探索

Noah

springboot智慧导诊系统源码:根据患者症状匹配挂号科室

源码星辰

源码 Java、 智慧导诊 智能导诊 医院导诊

软件测试/测试开发丨接口测试 学习笔记

测试人

软件测试

探索前端开发趋势:2023年的新兴技术与发展方向

不在线第一只蜗牛

前端 Web 前端开发

公有云与私有云的区别在哪?选择公有云是否真的会泄露隐私?

Finovy Cloud

公有云 私有云 私有云平台

通过Environment获取属性文件的值,竟然会调用到JNDI服务!!!| 京东云技术团队

京东科技开发者

"云原生:构建未来应用的革命性方法"

啊川..

2023

零基预算:从零开始的财务计划与预算管理

智达方通

全面预算 财务计划 预算管理 零基预算

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