.Net 6+Mysql+EF 实现数据迁移(CodeFirst)与反向工程(DataFirst)

.Net 6+Mysql+EF 实现数据迁移(CodeFirst)与反向工程(DataFirst)

数据迁移(CodeFist)

1.新建一个.Net 6类库项目(一般数据层【DAL层】会单独放在一个类库里)

.Net 6+Mysql+EF 实现数据迁移(CodeFirst)与反向工程(DataFirst)_第1张图片
2.安装需要的nuget程序包

类库项目需要安装
版本可以使用最新的
.Net 6+Mysql+EF 实现数据迁移(CodeFirst)与反向工程(DataFirst)_第2张图片
启动项目需要安装
启动项目需要引用类库
.Net 6+Mysql+EF 实现数据迁移(CodeFirst)与反向工程(DataFirst)_第3张图片
如在安装Nuget出现错误可按照控制台输出提示进行版本的升降

3.新建实体类

4.新建数据上下文(datacontext)

using Microsoft.EntityFrameworkCore;

namespace CodeFirstToMySQL
{
    public class UserDbContext : DbContext
    {
        public DbSet Users { get; set; }


        public UserDbContext() : base()//一定要有默认构造方法,否则在生成migration时会报错。
        {

        }
        public UserDbContext(DbContextOptions options)
        : base(options)
        {

        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
			 optionsBuilder.UseMySql("Server=localhost;Port=3306;Database=testmscodefirst;Uid=root;Pwd=123456;", ServerVersion.AutoDetect("Server=localhost;Port=3306;Database=testmscodefirst;Uid=root;Pwd=123456;"));
        }
    }
}

5.打开程序包管理器控制台
.Net 6+Mysql+EF 实现数据迁移(CodeFirst)与反向工程(DataFirst)_第4张图片
输入以下命令

EntityFrameworkCore\Add-Migration init

添加迁移
表示添加迁移成功,会出现以下内容
迁移文件夹
检查init文件内容数据是否正确,若确认无误接着输入

EntityFrameworkCore\Update-Database

若控制台输出无异常,即表示迁移成功

数据库将会新增user表和ef迁移历史表,历史表会记录迁移的历史记录
.Net 6+Mysql+EF 实现数据迁移(CodeFirst)与反向工程(DataFirst)_第5张图片

至此整个迁移过程完成

反向工程(DataFirst)

  • 一个有表结构的数据库
  • 安装nuget程序包(参照codefirst)
  • 打开程序包管理器控制台输入以下命令
Scaffold-DbContext -Connection "Database=yourdatabase;Data Source=yourDataSource;User Id=root;Password=123456;SslMode=none" Pomelo.EntityFrameworkCore.MySql -OutputDir "Entities"

生成结果如图所示

.Net 6+Mysql+EF 实现数据迁移(CodeFirst)与反向工程(DataFirst)_第6张图片

你可能感兴趣的:(.net,mysql,数据库,c#)