使用.NET CLI & EF CORE 对 Mysql数据库进行数据迁移

系统环境:macOS(10.15.7)、VSCode(1.52.1)、MySql(8.0.23)


项目目录:

  • LibraryOnline
    • LibraryOnline.Modal  
      • Entities    
        • Author      
        • Book      
        • LibraryDbContext      
    • LibraryOnline.WebSite  
      • …    
      • Startup.cs    
      • …    

 

  1. 添加 Nuget 包 Pomelo.EntityFrameworkCore.MySql 和 Microsoft.EntityFrameworkCore.Design

dotnet add package Pomelo.EntityFrameworkCore.MySql --version 5.0.0-alpha.2

// Code First 使用
dotnet add package Microsoft.EntityFrameworkCore.Design --version 5.0.2

// 其中,包1 需添加到 Modal 和 WebSite;包2 只需添加到 WebSite

  2. 安装 EF 工具

dotnet tool install --global dotnet-ef
dotnet ef --version // 查询是否安装 ef 工具

  3. 创建 `LibraryDbContext.cs `

public class LibraryDbContext : DbContext
{
public LibraryDbContext(DbContextOptions<LibraryDbContext> options) : base(options)
{

}
// 此处添加需要的类
DbSet<Author> Authors { get; set; }
DbSet<Book> Books { get; set; }
}

/*
其中,DbContext 来自 NuGet 包:Pomelo.EntityFrameworkCore.MySql
如果报错,请到 *.csproj 检查是否添加该包,若未添加,请返回第一步。
*/

  4. 前往 `StartUp.cs ` ,添加数据库服务

services.AddDbContext<LibraryDbContext>(options => options
.UseMySql("server=localhost;user=root;password=12345678;database=LibraryOnlineDB"),
new MySqlServerVersion(new Version(8, 0, 23)), 
mySqlOptions => mySqlOptions
.CharSetBehavior(CharSetBehavior.NeverAppend)
.MigrationsAssembly("LibraryOnline.WebSite"))
.EnableSensitiveDataLogging()
.EnableDetailedErrors()
);

  5. 使用 终端命令 进行数据迁移

cd LibraryOnline.WebSite    // 进入启动项目
dotnet ef migrations add initDB -c LibraryDbContext    // 设置DbContext,并备份数据迁移数据
dotnet ef database update    // 启动数据迁移

  6. 若执行成功,可以在MySql里面看到数据库及数据表

 

以上就是博主在使用 .NET CLI 和 EF CODE 进行数据迁移的过程,如若有错误的地方,欢迎大家指正。谢谢

posted @ 2021-01-27 21:13  ChaoPiPi  阅读(289)  评论(0)    收藏  举报