1.初始准备
开发软件:VisualStudio2022,EFCore6.0
.net Core版本:.Net6.0
数据库:mysql8.0
数据库管理软件:Navicat
2.数据库的迁移
在实际的项目,除此设计好ER关系模型后,我们基本上可以确定数据库的框架。但是随着项目的推进,我们往往需要修改实体关系,或者新增字段,或者删除某个字段,亦或者增加新的表等。
在EFCore中,我们可以采用 如下方式进行迁移
Add-Migration 迁移名称//VisualStudio中使用
dotnet ef migrations add 迁移名称 //.NETCore CLI里使用
执行上述命令后,在项目文件里会生成一个叫Migrations的文件夹。
如果是第一次迁移,我们一般会在这个文件夹下,出现两个类,一个分步类,这个类主要做此次迁移的具体工作,一个是数据库快照类。
我们先看迁移类:


迁移类里主要有3个方法,其中一个分步类是Up和Down方法还有一个BuildTargetModel方法。
2.1 添加迁移
增加迁移先进行的操作主要如下:
1.编译程序,(注意:当前程序内存在编译错误,就无法迁移),
2.将新的模型与当前数据库快照进行对比,从而从而生成新迁移文件的Up和Down方法。
增加迁移后必须通过Update-DataBase 才能成功应用到数据库中。
我们来修改下项目中的Teacher 实体类,增加一个字段为Age,
public class Teacher
{
public int TeacherId {
get; set; }
public string Name {
get; set; }
public string Title {
get; set; }
public int Age {
get; set; }
public IList<Course> Courses {
get; set; } = new List<Course>();<

本文详细介绍了在EFCore中如何进行数据库迁移,包括初始准备、添加迁移、删除迁移、回退迁移以及通过Sql脚本和程序应用迁移。通过实例展示了如何处理数据库结构变化,如添加、删除字段,并讨论了程序应用迁移的适用场景及其风险。
1726

被折叠的 条评论
为什么被折叠?



