写点什么

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

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

关注

评论

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

《北京市政务服务领域区块链应用创新蓝皮书(第一版)》正式发布

CECBC

如何进行需求梳理及埋点方案设计

易观大数据

区块链加持的家用摄像头能拯救你的隐私吗?

CECBC

可读代码编写炸鸡六 - 控制流尽量向前奔涌就好,不要分心

多选参数

代码 代码优化 代码规范 可读代码编写 可读代码

图解:如何实现最小生成树

淡蓝色

Java 数据结构 算法

以中立性的立场看Severless的目标和流派

韩超

云原生 serverles

林左鸣 史瑞华:人类应鼎力进行的探索

CECBC

可读代码编写炸鸡七 - 表达式太长就拆

多选参数

代码质量 代码组织 代码规范 可读代码编写 可读代码

如何帮助技术员工高效成长?这几家企业的做法值得借鉴

极客时间企业版

研发管理 研发团队培训

寻找握剑的手,青睐懂行的人

脑极体

Week 06 命题作业

Jeremy

LeetCode题解:141. 环形链表,JavaScript HashMap,详细注释

Lee Chen

大前端 LeetCode

解决问题 1474 个,Flink 1.11 究竟有哪些易用性上的改善?

Apache Flink

flink

Week 06学习总结

Jeremy

【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播

华为云开发者联盟

运维 服务器 直播 云服务 华为云

数十家技术社区联名推荐的GeekOnline来了!

Geek_116789

单例模式的几种写法你用的哪种?

Java小咖秀

Java 设计模式 23种设计模式

第六周总结

腾志文(清样)

毕业半年的憨憨,将公司的代码上传到GitHub上了

诸葛小猿

GitHub 代码上传

计算机揭秘之:网络分类和性能分析

程序那些事

TCP 计算机网络 网络协议 计算机基础 udp

Python的四种作用域及调用顺序

BigYoung

Python 局部作用域 全局作用域

我想模糊删除redis key🤔

山中兰花草

Java lua redis 面试 批量任务

CAP原理

jason

平价又好用的学习电脑小轩PRO来啦,为孩子创造超强学习体验

最新动态

第六周作业

腾志文(清样)

聊聊Dubbo(二):简单入门

猿灯塔

MQTT的搭建、测试、应用及小程序的集成!

诸葛小猿

物联网 IoT mqtt broker

企业架构框架之TOGAF

冯文辉

企业架构

朱嘉明:区块链成为经济转型、形成产业新业态的技术手段

CECBC

防止数据重复提交的6种方法(超简单)!

王磊

Java

Flask-Restful 中 fileds.DateTime 不支持 strftime 格式

Leetao

Python flask web开发 Python框架 flask-restful

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