写点什么

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

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

关注

评论

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

我的微信业务架构图

白开水又一杯

#架构实战营

微信业务架构图&学生管理系统设计思路

刘琦Logan

模块一作业

Geek_85eb5f

基于java springboot android 安卓报修系统源码(毕设)

清风

Java Android Studio 毕业设计

Coffee学架构:架构设计001(怎么做架构设计)

咖啡

架构设计实战

深入了解现代web浏览器(第二部分)

GKNick

大前端 浏览器

架构实战☞ 微信业务架构&学生管理系统架构设计

眼镜盒子

架构实战营

架构实战营模块一作业

李焕之

微信朋友圈高性能复杂度分析

刘琦Logan

作业

Doctor Blind

架构实战营

0基础架构入门 - 1(架构概述)

felix

架构实战营 0基础架构入门

模块一

Tim

架构实战营

网络攻防学习笔记 Day117

穿过生命散发芬芳

网络安全 8月日更

Ubuntu Server 20.04 搭建安装Kubernetes

玏佾

Kubernetes k8s文档 k8s资源 #k8s

我的学生管理系统

白开水又一杯

#架构实战营

如何在 MacOS 上降级 Java 版本

escray

学习 8月日更

架构实战营-模块一作业

Alex.Wu

微信业务架构&毕设学生管理架构选择

Sky

架构实战营

微信业务架构图&毕业设计之学生管理系统(model1)

消失的子弹

微信 架构图

架构师训练营2期模块一作业

kazeMace

架构实战营

模块一作业:微信业务架构图与学生管理系统毕设架构设计

apple

在线JSON转HTML,TABLE表格工具

入门小站

工具

模块一作业

bin

架构实战课程 模块一作业

Frank

架构实战训练营模块 1 作业

斯蒂芬.赵

架构实战营

Linux之seq命令

入门小站

Linux

模块1作业

atob

微服务的痛:用实际经历告诉你它有多坑(三)

我爱娃哈哈😍

微服务 架构设计

架构实战打怪升级day01

yphust

【架构训练营】【模块一】【作业】【微信业务架构】【学生管理系统架构】

简直走不拐弯

极客时间 作业 架构训练营

百度地图开发-与地图的交互功能 06

Andy阿辉

android Android Studio Android 小菜鸟 8月日更

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