奕玖科技 > 新闻中心 > 技术文章

asp.net core自学第九天:数据迁移/创建数据库

来源: 奕玖科技 fly | 2022/8/9 14:44:37

上一篇文章讲述了EntityFrameworkCore的使用方法,貌似看起来好像使用EntityFrameworkCore前期还得配置那么一大堆的东西使用起来还得配合模型有时候大家甚至会觉得还不如原生的SQL语句来的方便?最开始小编也是这么感觉的,但经过深入的了解,我们最终会发现EntityFrameworkCore虽然有它的一些缺点,比如效率没有原生的SQL语言高。但是在便利性上确实是很好的,比如本篇所讲解的数据迁移功能。

什么是数据迁移

简单理解就是通过我们的源码自动创建/更新数据库的方法。在以往使用sql语言直接操作数据库的时候,我们如果想通过源码来创建数据库,并更新好数据库的数据结构,那么需要编写很多很多的SQL语句。或则我们直接对数据库进行手动的操作来创建数据库和它的数据结构。

这样就会产生一个问题就是比如我们源码这块一旦更改了数据结构,那么也必须手动的来更新数据库相应的结构,举一个例子,拿上一篇的项目的Models/Article.cs 这个数据结构来说。这个结构在上一篇有id,title,content 3个字段,那么经过业务的需求,我们现在要添加一个from字段,那么传统的方法是我们先修改这个数据模型,然后在数据库表Article里在手动添加一个字段from。这样是不是就产生了2步操作很麻烦?

现在asp.net core我们可以在Article.cs更改结构后,通过EntityFrameworkCore来完成数据库的更新这样就方便很多了。这样我们就可以减少一个操作数据库的步骤,也就节约了我们的开发时间。下面可以正式的操作,项目源码可以在上一篇文章下载。

通过Nuget程序包安装Microsoft.EntityFrameworkCore.Tools如下图

点击IDE下方的程序包管理器控制台键入命令Add-Migration init

然后成功后,会在我们的项目文件里出现一个Migrations文件夹,并且包含有20220809061713_init.cs有何AppDbModelSnapshot.cs这2个文件。

20220809061713_init.cs 是主迁移文,里面有2个函数 up() 对应应用迁移Down()对应恢复。

20220809061713_init.Designer.cs 包含有元数据(指插入数据库的数据)和EF所使用的信息。

AppDbModelSnapshot.cs当前的模型快照信息,参考文件夹Models

最后我们在控制台输入命令Update-Database如下图

然后我们就成功创建了数据库student如下图

这个是创建,比如上面我们要说增加一个from字段,然后怎么弄呢?首先20220809061713_init.cs里,把up() dowm() 里的代码清空,然后通过程序包管理器控制台输入命令 Add-Migration T2 完成后Migrations文件夹下就会多出20220809063746_T2.cs这个文件。程序包管理器控制台继续输入命令Update-Database T2,这样数据库里表Article里就会多出来一个from 的字段,如下图

好了,数据迁移教程今天就讲到这里吧!

栏目导航
相关文章
文章标签
关于我们
公司简介
企业文化
资质荣誉
服务项目
高端网站定制
微信小程序开发
SEO排名推广
新闻动态
行业新闻
技术学院
常见问题
联系我们
联系我们
人才招聘
联系方式
Q Q:24722
微信:24722
电话:13207941926
地址:江西省抚州市赣东大道融旺国际3栋
Copyright©2008-2022 抚州市奕玖科技有限公司 备案号:赣ICP备2022010182号-1