写点什么

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

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

关注

评论

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

AI智能体策略FunctionCalling和ReAct有什么区别?

王磊

跨端生态重构×AI智能驱动:移动研发模式新纪元

xuyinyin

PyTorch 实现 Alexnet图像分类

永荣带你玩转昇腾

昇腾910-PyTorch 实现 ResNet50图像分类

永荣带你玩转昇腾

HarmonyOS实战:路由跳转踩坑记

IT小码哥

HarmonyOS 鸿蒙 Ability an'droid harmony HarmonyOS NEXT

局域网沟通软件,私有化内网沟通工具-支持国产芯片与系统

BeeWorks

即时通讯 IM

局域网沟通工具,企业内网即时通讯app推荐!

BeeWorks

即时通讯 企业级应用

7 款最佳数据集成平台推荐

NocoBase

开源 低代码 ETL 数据集成平台 数据模型驱动

基于昇腾用PyTorch实现CTR模型DIN(Deep interest Netwok)网络

永荣带你玩转昇腾

VR游戏的上线运营

北京木奇移动技术有限公司

软件外包公司 VR游戏 VR技术开发

iVX DevOps 集成:从代码生成到 CI/CD 流水线的自动化协作实践

代码制造者

HarmonyOS实战:组件化项目搭建

IT小码哥

鸿蒙 Ability an'droid haromny HarmonyOS NEXT

DevEcoStudio 中使用模拟器时如何过滤日志

飞龙AI

鸿蒙核心技术 鸿蒙开发者工具 DevEcoStudio

阅读源码的思路

Nick

开源 软件工程 经验之谈

HarmonyOS实战:首页多弹窗顺序弹出终极解决方案

IT小码哥

HarmonyOS an'droid harmony 鸿蒙 os

层层剥开开鸿Bot,我们看到的是“开发者优先”

脑极体

AI

鸿蒙仓颉开发语言实战教程:自定义组件

幽蓝计划

昇腾910-PyTorch实现传统CTR模型WideDeep网络

永荣带你玩转昇腾

VR游戏的线上运维

北京木奇移动技术有限公司

软件外包公司 VR技术 VR游戏

企业im怎么选? BeeWorks -安全的企业内部通讯软件

BeeWorks

即时通讯 IM

BOE(京东方)第6代新型半导体显示器件生产线全面量产 打造全球显示产业新引擎

科技热闻

PyTorch 实现MobileNetV1用于图像分类

永荣带你玩转昇腾

VR游戏的开发框架

北京木奇移动技术有限公司

VR开发 软件外包公司 VR技术

HarmonyOS基础组件:Button三种类型的使用

IT小码哥

鸿蒙 鸿蒙 Ability an'droid HarmonyOS NEXT

NPU适配推荐系统GR模型流程

永荣带你玩转昇腾

「DeepSeek 技术解析」:LLM 训练中的强化学习算法

Baihai IDP

AI 强化学习 DeepSeek

VR游戏的上线流程

北京木奇移动技术有限公司

VR开发 软件外包公司 VR技术

BOE(京东方)第6代新型半导体显示器件生产线全面量产 打造全球显示产业新引擎

爱极客侠

PyTorch 实现GoogleNet用于图像分类

永荣带你玩转昇腾

VR游戏开发的主要流程

北京木奇移动技术有限公司

软件外包公司 VR技术 VR游戏

IM即时通讯软件,BeeWorks的产品优势有哪些?

BeeWorks

即时通讯 IM 企业级应用

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