.NET 7.0 + Mysql + EF Core Tool 如何反向工程,根據数据库生成實體類

前提條件 - EF Core Tool

1
Server=database-xxxxx.com;Port=3306;Database=DBName;Uid=root;Pwd=password;

全局安裝dotnet-ef

1
dotnet tool install --global dotnet-ef

反向工程,生成實體類

1
dotnet ef dbcontext scaffold "YourConnectionString" Pomelo.EntityFrameworkCore.MySql -o Model



在.NET 7.0中,你可以使用Entity Framework Core (EF Core) 来执行反向工程,根据数据库生成实体类。以下是如何进行反向工程的步骤:

  1. 安装必要的NuGet包:

首先,在你的.NET 7.0项目中,确保已经安装了以下NuGet包,以便使用Entity Framework Core和MySQL数据库提供程序(Pomelo.EntityFrameworkCore.MySql):

1
2
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Pomelo.EntityFrameworkCore.MySql
  1. 创建数据库上下文类:

在你的项目中创建一个派生自 DbContext 的数据库上下文类,以便连接到MySQL数据库并将表映射到.NET对象。

1
2
3
4
5
6
7
8
9
10
11
12
13
using Microsoft.EntityFrameworkCore;

public class ApplicationDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
var serverVersion = ServerVersion.AutoDetect("YourConnectionString");
optionsBuilder.UseMySql(serverVersion);
}
}
}

在上述代码中,将 YourConnectionString 替换为你的MySQL数据库连接字符串。

  1. 生成实体类:

使用Entity Framework Core的工具来生成实体类。

來源: Entity Framework Core tools reference - .NET Core CLI

在项目文件夹中打开命令行或终端,并运行以下命令:

1
dotnet ef dbcontext scaffold "YourConnectionString" Pomelo.EntityFrameworkCore.MySql -o Models

这将生成实体类并将其放置在名为 Models 的文件夹中。

  1. 使用生成的实体类:

现在,你可以在应用程序中使用生成的实体类来访问MySQL数据库。

1
2
3
4
5
using (var context = new ApplicationDbContext())
{
var entities = context.MyEntities.ToList();
// 执行其他数据库操作
}

通过执行以上步骤,你可以在.NET 7.0中完成反向工程,根据MySQL数据库生成实体类,实现与数据库的交互。确保在连接字符串中提供正确的MySQL服务器配置。