硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

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

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

关注

评论

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

微信朋友圈架构复杂度分析

Geek_nlp小咖

架构 微信朋友圈

OpenVINO+TF2环境搭建

IT蜗壳-Tango

11月日更

飞行汽车能顺利上天吗?

脑极体

Java 中 List 分片的 5 种方法!

王磊

Java List

云栖回顾|首届阿里云云原生生态合作伙伴大会:与伙伴能力融合,加速企业数字创新

阿里巴巴云原生

阿里云 云原生 生态 交流 合作伙伴

架构班模块二作业

21°Char

降本增效利器之 Serverless

中原银行

Serverless 云原生 函数计算 中原银行

坚守在技术无人区,一群无名英雄的低调与浪漫

脑极体

事务对系统影响(一)

卢卡多多

事务 11月日更

区块链技术重构文创产业 首个行业自律公约发布

CECBC

第二模块作业

张靖

#架构实战营

模块二作业

hhh

「架构实战营」

为面试加油助力,90个常见的Kubernetes面试题,值得收藏学习

奔着腾讯去

Docker Kubernetes 容器 云原生 Go 语言

架构实战营-模块2-作业

lucian

架构实战营

宣布Contour v1.13.0!!!

远鹏

golang Kubernetes cncf contour ingress-controller

架构实战营 - 模块二 - 微信朋友圈的高性能复杂度分析

dog_brother

架构实战营

01 K8S之容器与容器编排系统

穿过生命散发芬芳

k8s 11月日更

模块二作业

panxiaochun

架构实战营

连续四年包揽第一!百度AI专利申请量、授权量再度领跑全国

百度大脑

人工智能 百度

区块链用在房地产交易上 会怎样?

CECBC

【LeetCode】分糖果Java 题解

Albert

算法 LeetCode 11月日更

极客时间 - 架构实战营 - 模块二作业

秋夫人

架构实战营

linux之Ansible快速入门

入门小站

Linux

飞桨中国行登陆鹏城 与当地企业共话AI赋能软硬件产品创新

百度大脑

人工智能 百度

模块二作业

莫离

架构实战营 「架构实战营」

文本序号添加/移除工具

入门小站

工具

架构训练营 - 模块2作业

焦龙

架构实战营

00后已经进入网易,下一步定位阿里,年轻人这么拼,android开发艺术探索电子

android 程序员 移动开发

架构设计第二周学习总结

周文

架构实战营 「架构实战营」

Serverless 工程实践|自建 Apache OpenWhisk 平台

阿里巴巴云原生

Apache 阿里云 开源 Serverless 云原生

模块二作业

忘记喝水的猫

架构训练营

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