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

转载于:https://www.cnblogs.com/shihao/archive/2011/12/09/2281502.html

使用Code First Migrations依据代码更新数据库结构相关推荐

  1. Code First 下自动更新数据库结构(Automatic Migrations)

    示例 Web.config <?xml version="1.0" encoding="utf-8"?> <configuration> ...

  2. Entity Framework 6 Code First的简单使用和更新数据库结构

    一.安装Entity Framework 6 在项目中右击选择"管理NuGet程序包",联机搜索Entity Framework,点击安装 二.配置数据库连接 在App.confi ...

  3. Code First Migrations更新数据库结构的具体步骤

    一.打开程序包管理器控制台 当你的实体模型与数据库架构不一致时,引发以下错误: The model backingthe 'SchoolContext' context has changed sin ...

  4. mysql migrations_Code First Migrations更新数据库结构(数据迁移)

    背景 code first起初当修改model后,要持久化至数据库中时,总要把原数据库给删除掉再创建(DropCreateDatabaseIfModelChanges),此时就会产生一个问题,当我们的 ...

  5. EF CodeFirst下,当实体结构发生修改怎么更新数据库结构

    在使用EF的实际编程中我们经常遇到这样的问题:发现实体结构需要新增加一个字段,或者减少一个字段,急需把实体结构修改,并让数据库更新这种修改.在用Model First或者Database First的 ...

  6. 转载:LINQ to SQL更新数据库操作

    翻译整理ScottGu的关于LINQ to SQL的Part 4: Updating our Database .该Post讲解了如何使用LINQ to SQL更新数据库,以及如何整合业务逻辑和自定义 ...

  7. Linq学习——更新数据库操作

    用LINQ to SQL建模Northwind数据库 在这之前一起学过LINQ to SQL设计器的使用,下面就使用如下的数据模型: 当使用LINQ to SQL设计器设计以上定义的五个类(Produ ...

  8. 用 Flask 来写个轻博客 (8) — (M)VC_Alembic 管理数据库结构的升级和降级

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 Alembic 查看指令 manager db 的可用选项 ...

  9. EF mysql 数据迁移_EF Code First Migrations数据库迁移

    1.EF Code First创建数据库 新建控制台应用程序Portal,通过程序包管理器控制台添加EntityFramework. 在程序包管理器控制台中执行以下语句,安装EntityFramewo ...

最新文章

  1. 公示 | 首届中国智能心电大赛初赛结果
  2. python基础之异常处理
  3. stark组件开发之添加功能实现
  4. element js 包含字符_selenium3.x(10)js弹框处理
  5. 第十二届蓝桥杯省赛:试题 A: 卡片(Java)
  6. Oracle OCM 认证指南
  7. 德媒看2019年的世界:西方在争吵,中国在崛起,非洲在增长……
  8. python操作mysql数据库的常用方法使用详解
  9. 【大数据】大数据的特点
  10. 通信值勤维护管理条例_加强固定通信台站值勤管理与建设
  11. JavaScript 错误 - Throw、Try 和 Catch
  12. Asp.Net异步加载
  13. paip.asp vbs的代码折叠代码结构查看
  14. 关于数据加载的一些思考
  15. swift5函数和Collection
  16. 无法打开编译的html,解决VS在编译的时候无法打开...obj文件的问题
  17. Java发起GET请求的二三事
  18. Unity制作自己的Project Template
  19. Android新机系统要求,原神手机端最低配置要求
  20. Aspose.Words for .NET使用教程(十二):在Word文档中使用图表轴

热门文章

  1. 轻松学Linux之使用转义字符
  2. 一种使用蒸汽眼罩保养的方法
  3. 收到贺卡和礼物的处理方法
  4. 如果记录没有跟得上创造和学习
  5. 【转】early-z、z-culling、hi-z、z-perpass
  6. Eclipse基金会发布MicroProfile 2.2,适用于Java微服务
  7. Lecture 1 Analysis of Algorithms
  8. win10 64位下运行汇编
  9. 托管数据中心之间的PUE比较(下)
  10. 如何成为一名入门级 iOS 开发者