Entity Framework Core 工具参考-.NET Core CLI
EF Core 3.x 中包含的中断性变更
安装工具,将 dotnet ef 安装为全局工具或本地工具
# 将 dotnet ef 安装为全局工具或本地工具
dotnet tool install --global dotnet-ef
dotnet tool install --global dotnet-ef --version 3.1.3 # 安装特定版本
# 更新工具
dotnet tool update --global dotnet-ef
dotnet tool update --global dotnet-ef --version 5.0.4 # 更新安装特定版本
# 更新工具
dotnet tool update --global dotnet-ef --version 6.0.1 # 更新安装特定版本
# 更新工具
dotnet tool update --global dotnet-ef --version 7.0.1 # 更新安装特定版本
# 验证安装
dotnet ef
# 检查已安装 .NET
dotnet --list-sdks
如下
1、管理 Nuget 程序包
在【实体类】项目添加程序包
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
2、参数
-connection "数据库连接字符串" #数据库的连接字符串
-provider #要使用的提供程序。 是 NuGet 包名称,例如:Microsoft.EntityFrameworkCore.SqlServer
--context AssetDbContext #要生成的 DbContext 类的名称。
--context-dir Entity #要在其中放置 DbContext 类文件的目录。 路径相对于项目目录。 命名空间派生自文件夹名称。
--output-dir Entity #要在其中放置实体类文件的目录。 路径相对于项目目录。
--force #覆盖现有文件
--use-database-names Microsoft.EntityFrameworkCore.SqlServer #使用与数据库中显示的名称完全相同的表和列名
--no-pluralize #请勿使用复数化程序
--no-onconfiguring #禁止在生成的 DbContext 类中生成 OnConfiguring 方法
3、数据库生成实体类型
方式1【在【实体类】项目【文件夹地址栏】输入cmd,输入如下命令】
方式2【视图 - 其他窗口 - 程序包管理器控制台 - 自动生成Sql Server数据库实体类 - 输入如下命令】
--输出到【当前目录】
dotnet ef dbcontext scaffold "data source=.;initial catalog=dbAsset;user id=sa;password=000000;TrustServerCertificate=True;" --context AssetDbContext --force --use-database-names Microsoft.EntityFrameworkCore.SqlServer --no-pluralize --no-onconfiguring
--输出到【指定目录】
dotnet ef dbcontext scaffold "data source=.;initial catalog=dbAsset;user id=sa;password=000000;TrustServerCertificate=True;" --context AssetDbContext --context-dir Entity --output-dir Entity --force --use-database-names Microsoft.EntityFrameworkCore.SqlServer --no-pluralize --no-onconfiguring
4、bat文件
在【实体类】项目创建【dbConnect.txt】文件,把【执行命令】粘贴到【dbConnect.txt】文件中,重命名为【dbConnect.bat】文件,双击运行。
5、数据库视图的反向工程
dotnet ef dbcontext scaffold "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer --force --no-pluralize --no-onconfiguring
6、数据库生成实体类型
方式1【在【实体类】项目【文件夹地址栏】输入cmd,输入如下命令】
方式2【视图 - 其他窗口 - 程序包管理器控制台 - 自动生成Sql Server数据库实体类 - 输入如下命令】
创建输出路径文件夹:AssetModels
Scaffold-DbContext "Server=192.168.159.130;Database=dbAsset;User Id=sa;Password=000000;TrustServerCertificate=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir AssetModels -Context DBContext --force --no-pluralize --no-onconfiguring
Scaffold-DbContext -Connection "Server=192.168.159.130;Database=dbAsset;User Id=sa;Password=000000;TrustServerCertificate=True;" -Provider Microsoft.EntityFrameworkCore.SqlServer -OutputDir AssetModels -Context DBContext --force --no-pluralize --no-onconfiguring
7、数据库生成实体类型
视图 - 其他窗口 - 程序包管理器控制台 - 输入如下命令 - 自动生成PostgreSQL数据库实体类
-OutputDir PgModel #输出路径文件夹路径PgModel
Scaffold-DbContext "HOST=192.168.159.130;PORT=5432;USER ID=lisi;PASSWORD=000000;DATABASE=school" Npgsql.EntityFrameworkCore.PostgreSQL -OutputDir PgModel -Force --no-pluralize --no-onconfiguring
*
*
*