首先安装dotnet-ef工具,否则提示:
*无法执行,因为找不到指定的命令或文件。
可能的原因包括:
*你拼错了内置的 dotnet 命令。
*你打算执行 .NET Core 程序,但 dotnet-ef 不存在。
你打算运行全局工具,但在路径上找不到名称前缀为 dotnet 的可执行文件。
你可以在终端执行
dotnet tool install --global dotnet-ef
如果报错:
*error NU1202: 包 dotnet-ef 7.0.12 与 netcoreapp3.1 (.NETCoreApp,Version=v3.1) / any 不兼容。 包 dotnet-ef 7.0.12 支持: net6.0 (.NETCoreApp,Version=v6.0) / any
无法还原工具包。
工具“dotnet-ef”安装失败。此故障可能由以下原因导致:
- 你尝试安装预览版,但未使用 --version 选项来指定该版本。
- 已找到具有此名称的包,但是它不是 .NET Core 工具。
- 无法访问所需的 NuGet 源,这可能是由于 Internet 连接问题导致。
- 工具名称输入错误。
有关更多原因(包括强制包命名),请访问 https://aka.ms/failure-installing-tool*
证明你的.Core版本较低,可以安装跟你的.Core对应版本的
dotnet tool install --global dotnet-ef --version 3.1.20
接下来将YourConnectionString替换为你的数据库连接字符串。这个命令将会使用Entity Framework Core的Scaffold功能,根据数据库中的表结构自动生成SQMainContext类,并将其放置在Models文件夹的SQMainContext文件夹中。
dotnet ef dbcontext scaffold "YourConnectionString" Microsoft.EntityFrameworkCore.SqlServer -o Models/SQMainContext --context SQMainContext
如果你只想增加某张数据库表的实体类,你可以使用–table,然后如果是更新某张表,你可以使用–force覆盖
dotnet ef dbcontext scaffold "YourConnectionString" Microsoft.EntityFrameworkCore.SqlServer -o Models/SQMainContext --context SQMainContext --table SQMain --force
终端提示这个证明成功。