一些介绍

CodeFirst是EntityFrameworks的一种开发模式,即代码优先,它以业务代码为主,通过代码来生成数据库,并且加上migration的强大数据表比对功能来生成数据库版本,让程序开发人员不用维护数据库的变更,而直接维护migration即可,在它里面有你当前版本和过去历史版本的所有变更记录!

(1)通过EF-CodeFirst自己帮我们建立了数据库,初始化的数据表

第一次建立数据模型,运行程序,自动建立数据库和数据表,并执行对应的初始化工作

数据模型

数据初始化

EF在LindAgile里的注册

数据库第一次被创建,数据表名的名称,可以控制它的单数和复数形式

        protected override void OnModelCreating(DbModelBuilder modelBuilder){// 注意表单复数形式时,实体不能有下划线,必须是单词modelBuilder.Conventions.Remove<System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention>();     }

其中__MigrationHistory表,它是数据变更的数据表,体现了数据库的历史

(2)开始数据迁移

这时,我们看解决方案里,没有migrations文件夹,因为这时你没有开启变更计划

当开启变更后,才会出现这个文件夹

 Enable-Migrations

然后在项目中就看到了migrations文件夹,它将存储我们数据库的变更记录

我们如果新添加了数据实体DO,或者修改了原来的实体,然后希望升级一个变更记录,可以使用add-migration 变更名(随便写)

然后在我们项目的Migrations目录会多一个变更文件,它以时间戳开头,我们在变更执行时,这个时间戳是它顺序执行的关键

(3)把模型的变更更新到数据库

同时,我们看一个数据表__MigrationHistory,它没有发生变化,这是因为我们没有把变更更新到数据库,如果希望更新到数据库,可以使用update-database来实现,如果不加版本号,默认更新的是最新的变更记录,它会包括之前的变更代码,在更新时它会与数据表__MigrationHistory里的变更记录进行对比,如果已经更新过了,就不会执行这个版本,而只会向后更新!

执行完成后,我们再看一下数据表的变化,它也会多一条最新的变更记录,以后我们再有数据表变更,就使用这个方法即可,EF-migration只要我们好好用,它只会使我们的开发便得更快捷!

(4)把模型的变更成SQL脚本,以便在生产环境中使用

Update-Database -Script -SourceMigration: $InitialDatabase -TargetMigration:init

上面代码执行后会生成一个SQL文件,我们拿这个文件可以到生产环境中去执行,就完成了数据库的更新!

文章转载至:http://www.cnblogs.com/lori/p/7065698.html

转载于:https://www.cnblogs.com/LonelyCode/p/7072888.html

EF架构~codeFirst从初始化到数据库迁移相关推荐

  1. migration mysql_MySql 使用 EF Core 2.0 CodeFirst、DbFirst、数据库迁移(Migration)介绍及示例...

    dotnet core 2.0 发布已经好几天了,期间也把原来 dotnet core 1.1 的 MVC 项目升级到了 2.0,升级过程还是比较顺利的,变动也不是太多.升级的过程中也少不了 Enti ...

  2. MySql 使用 EF Core 2.0 CodeFirst、DbFirst、数据库迁移(Migration)介绍及示例

    dotnet core 2.0 发布已经好几天了,期间也把原来 dotnet core 1.1 的 MVC 项目升级到了 2.0,升级过程还是比较顺利的,变动也不是太多.升级的过程中也少不了 Enti ...

  3. EF架构~将数据库注释添加导入到模型实体类中

    回到目录 相关文章系列 第八回 EF架构~将数据库注释添加导入到模型实体类中 第二十一回  EF架构~为EF DbContext生成的实体添加注释(T4模板应用) 第二十二回  EF架构~为EF Db ...

  4. 第十七节: EF的CodeFirst模式的四种初始化策略和通过Migration进行数据的迁移

    一. 四种初始化策略 EF的CodeFirst模式下数据库的初始化有四种策略: 1. CreateDatabaseIfNotExists:EF的默认策略,数据库不存在,生成数据库:一旦model发生变 ...

  5. .Net Core建站(2):EF Core+CodeFirst数据库迁移

    上一篇的话,说了下怎么使用EF7 实现 CodeFirst去生成数据库, 其实还有好多问题的,这次一点一点的解决吧,都挺简单,不过零零散散的,, 1.读取配置文件,获得链接字符串 2.使用数据库进行增 ...

  6. mysql asp.net core_基于 ASP.NET Core 2.0 WebAPI 后台框架搭建(2) - EF Core (MySQL) CodeFirst 数据库迁移与依赖注入...

    概述 上一章,我们简单的搭建了依赖注入的三层架构,但是,没有真正的使用,而我们现在就使用MySQL数据,基于 EF Core 的 DbFirst 进行框架搭建. 步骤 1. 右击 Entity 项目, ...

  7. EF使用CodeFirst方式生成数据库技巧经验

    前言 EF已经发布很久了,也有越来越多的人在使用EF.如果你已经能够非常熟练的使用EF的功能,那么就不需要看了.本文意在将自己使用EF的方式记录下来备忘,也是为了给刚刚入门的同学一些指导.看完此文,你 ...

  8. Asp.Net MVC CodeFirst模式数据库迁移步骤

    利用Code First模式构建好基本的类后,项目也开始搭建完毕并成功运行,而且已经将数据库表结构自动生成了,但是,我有新的类要加入,有字段需要修改,就得将这部分修改同步到数据库中,利用数据库迁移,将 ...

  9. ef 数据迁移mysql_07116.3.0如何将CM的外部PostgreSQL数据库迁移至MySQL服务

    文档编写目的 在前面的文章<6.3.0-如何将CM内嵌PostgreSQL服务迁移至外部PostgreSQL服务>介绍了将CM内嵌的PostgreSQL迁移至外部PostgreSQL,因为 ...

最新文章

  1. mysql自增长2个增加_mysql – 添加第二个自动增量字段并允许重复
  2. 代码改动两三行,AI数据秒换隐身衣!隐私计算+AI?中科院博士实践分享一键切换...
  3. java输出流缓冲区内容清除,Java输入输出流与缓冲区的使用
  4. 《挖财编程题》求数列的和
  5. android9 三星 港版,三星S9官方港版安卓9完整版固件升级更新包:TGY-G9600ZHU4CSE7
  6. solaris安装java_Solaris是出色的Java开发平台的原因
  7. mysql 不限定 ip_mysql 不指定 ip 的连接默认都是 localhost
  8. 博客园的神回复,程序猿的奇葩神回复[连载][二]
  9. 如何构建一个交互式数据分析 Web 应用?
  10. 众包专访:告别接包黑历史,来到开源中国众包接包小记
  11. TensorFlow读取自己数据集的几个小方法
  12. 远程电脑不能复制粘贴
  13. ubuntu 改屏幕分辨率命令_ubuntu下修改分辨率
  14. 如何对CAD图纸上的图形进行单独保存起来
  15. 推荐一个好用的JSON编辑器
  16. android手机版本
  17. 1036Gangsters
  18. Java基础系列33-异常
  19. PLC实验:认知实训
  20. Hi3518ev200:RTSP传输流过程分析

热门文章

  1. 【CodeForces - 569B】Inventory (水题)
  2. [sicily]【1001】 会议安排(田忌赛马类贪心)
  3. Waymo自动驾驶数据集介绍与使用教程
  4. 4.2)深度卷积网络:实例研究
  5. 函授本科统考计算机考试时间,函授2006级计算机、机电本科第一学期考试时间安排.doc...
  6. mysql win10 优化设置_windows10如何优化?系统优化设置方法
  7. ubuntu 在线安装php,ubuntu在线安装LNMP
  8. oracle中那个日期怎么相减_oracle数据库中日期加减函数
  9. mysql 导出数据库中的某张数据表_mysql 导出数据库中的某张数据表
  10. leetcode276. 栅栏涂色