使用 dotnet ef dbcontext scaffold 从现有数据库生成 Entity Framework Core 模型

概述

在 .NET 开发中,Entity Framework Core(EF Core)是最常用的 ORM(对象关系映射)框架之一。dotnet ef dbcontext scaffold 是 EF Core 的强大工具命令,可以从现有数据库自动生成实体类(Models)和 DbContext。这个功能在数据库优先(Database First)的开发模式中特别有用。

EF Core 工具参考 (.NET CLI) - EF Core | Microsoft Learn

命令基本语法

dotnet ef dbcontext scaffold [连接字符串] [提供程序] [选项]

用法

1.新建 控制台项目
2.引用 NuGet 包
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer

以下命令执行说明:

  1. 方式一:在项目目录(包含 .csproj 文件的位置)打开命令行执行

  2. 方式二:在任意位置执行时,使用 --project <项目文件路径> 参数

示例 1:从 SQL Server 生成所有表

dotnet ef dbcontext scaffold "Server=localhost;Database=BookStore;Trusted_Connection=True;TrustServerCertificate=true;" Microsoft.EntityFrameworkCore.SqlServer -o Models

示例 2:使用配置文件中的连接字符串

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Database=BookStore;Trusted_Connection=True;TrustServerCertificate=true;"
  }
}
dotnet ef dbcontext scaffold "name=ConnectionStrings:DefaultConnection" Microsoft.EntityFrameworkCore.SqlServer -o Models

示例 3:生成指定表

dotnet ef dbcontext scaffold "Server=sqlserver.company.com;Database=BookStore;User Id=sa;Password=*****;TrustServerCertificate=true;" Microsoft.EntityFrameworkCore.SqlServer -o Domain/Models --context-dir Infrastructure/Data --context ECommerceDbContext --table Products --table Categories --table Customers --table Orders --force

生成后如下

image

 

posted @ 2025-12-25 09:42  Hi.wz  阅读(4)  评论(0)    收藏  举报