概述
在 .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
命令基本语法
1.新建 控制台项目
2.引用 NuGet 包
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
以下命令执行说明:
-
方式一:在项目目录(包含
.csproj文件的位置)打开命令行执行 -
方式二:在任意位置执行时,使用
--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
生成后如下
