EF架构~codeFirst从初始化到数据库迁移
一些介绍
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从初始化到数据库迁移相关推荐
- migration mysql_MySql 使用 EF Core 2.0 CodeFirst、DbFirst、数据库迁移(Migration)介绍及示例...
dotnet core 2.0 发布已经好几天了,期间也把原来 dotnet core 1.1 的 MVC 项目升级到了 2.0,升级过程还是比较顺利的,变动也不是太多.升级的过程中也少不了 Enti ...
- MySql 使用 EF Core 2.0 CodeFirst、DbFirst、数据库迁移(Migration)介绍及示例
dotnet core 2.0 发布已经好几天了,期间也把原来 dotnet core 1.1 的 MVC 项目升级到了 2.0,升级过程还是比较顺利的,变动也不是太多.升级的过程中也少不了 Enti ...
- EF架构~将数据库注释添加导入到模型实体类中
回到目录 相关文章系列 第八回 EF架构~将数据库注释添加导入到模型实体类中 第二十一回 EF架构~为EF DbContext生成的实体添加注释(T4模板应用) 第二十二回 EF架构~为EF Db ...
- 第十七节: EF的CodeFirst模式的四种初始化策略和通过Migration进行数据的迁移
一. 四种初始化策略 EF的CodeFirst模式下数据库的初始化有四种策略: 1. CreateDatabaseIfNotExists:EF的默认策略,数据库不存在,生成数据库:一旦model发生变 ...
- .Net Core建站(2):EF Core+CodeFirst数据库迁移
上一篇的话,说了下怎么使用EF7 实现 CodeFirst去生成数据库, 其实还有好多问题的,这次一点一点的解决吧,都挺简单,不过零零散散的,, 1.读取配置文件,获得链接字符串 2.使用数据库进行增 ...
- mysql asp.net core_基于 ASP.NET Core 2.0 WebAPI 后台框架搭建(2) - EF Core (MySQL) CodeFirst 数据库迁移与依赖注入...
概述 上一章,我们简单的搭建了依赖注入的三层架构,但是,没有真正的使用,而我们现在就使用MySQL数据,基于 EF Core 的 DbFirst 进行框架搭建. 步骤 1. 右击 Entity 项目, ...
- EF使用CodeFirst方式生成数据库技巧经验
前言 EF已经发布很久了,也有越来越多的人在使用EF.如果你已经能够非常熟练的使用EF的功能,那么就不需要看了.本文意在将自己使用EF的方式记录下来备忘,也是为了给刚刚入门的同学一些指导.看完此文,你 ...
- Asp.Net MVC CodeFirst模式数据库迁移步骤
利用Code First模式构建好基本的类后,项目也开始搭建完毕并成功运行,而且已经将数据库表结构自动生成了,但是,我有新的类要加入,有字段需要修改,就得将这部分修改同步到数据库中,利用数据库迁移,将 ...
- ef 数据迁移mysql_07116.3.0如何将CM的外部PostgreSQL数据库迁移至MySQL服务
文档编写目的 在前面的文章<6.3.0-如何将CM内嵌PostgreSQL服务迁移至外部PostgreSQL服务>介绍了将CM内嵌的PostgreSQL迁移至外部PostgreSQL,因为 ...
最新文章
- mysql自增长2个增加_mysql – 添加第二个自动增量字段并允许重复
- 代码改动两三行,AI数据秒换隐身衣!隐私计算+AI?中科院博士实践分享一键切换...
- java输出流缓冲区内容清除,Java输入输出流与缓冲区的使用
- 《挖财编程题》求数列的和
- android9 三星 港版,三星S9官方港版安卓9完整版固件升级更新包:TGY-G9600ZHU4CSE7
- solaris安装java_Solaris是出色的Java开发平台的原因
- mysql 不限定 ip_mysql 不指定 ip 的连接默认都是 localhost
- 博客园的神回复,程序猿的奇葩神回复[连载][二]
- 如何构建一个交互式数据分析 Web 应用?
- 众包专访:告别接包黑历史,来到开源中国众包接包小记
- TensorFlow读取自己数据集的几个小方法
- 远程电脑不能复制粘贴
- ubuntu 改屏幕分辨率命令_ubuntu下修改分辨率
- 如何对CAD图纸上的图形进行单独保存起来
- 推荐一个好用的JSON编辑器
- android手机版本
- 1036Gangsters
- Java基础系列33-异常
- PLC实验:认知实训
- Hi3518ev200:RTSP传输流过程分析
热门文章
- 【CodeForces - 569B】Inventory (水题)
- [sicily]【1001】 会议安排(田忌赛马类贪心)
- Waymo自动驾驶数据集介绍与使用教程
- 4.2)深度卷积网络:实例研究
- 函授本科统考计算机考试时间,函授2006级计算机、机电本科第一学期考试时间安排.doc...
- mysql win10 优化设置_windows10如何优化?系统优化设置方法
- ubuntu 在线安装php,ubuntu在线安装LNMP
- oracle中那个日期怎么相减_oracle数据库中日期加减函数
- mysql 导出数据库中的某张数据表_mysql 导出数据库中的某张数据表
- leetcode276. 栅栏涂色