使用.NET CLI & EF CORE 对 Mysql数据库进行数据迁移
系统环境:macOS(10.15.7)、VSCode(1.52.1)、MySql(8.0.23)
项目目录:
- LibraryOnline
- LibraryOnline.Modal
- Entities
- Author
- Book
- LibraryDbContext
- Entities
- LibraryOnline.WebSite
- …
- Startup.cs
- …
- LibraryOnline.Modal
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 进行数据迁移的过程,如若有错误的地方,欢迎大家指正。谢谢

浙公网安备 33010602011771号