反向生成实体类
https://www.cnblogs.com/cn-star/p/12021067.html
不管是哪种数据库都需要安装
Microsoft.EntityFrameworkCore.Tools
-用来可以在命令行使用以下几种指令
Add-Migration
Drop-Database
Get-DbContext
Scaffold-DbContext
Script-Migrations
Update-Database
如果服务找到dotnet ef 命令请执行
dotnet tool install --global dotnet-ef --version 3.0.0-* dotnet tool update --global dotnet-ef --version 3.0.0-*
dotnet tool remove--global dotnet-ef --version 3.0.0-*
dotnet tool uninstall dotnet-ef -g
dotnet tool list
https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet-tool-install?view=netframework-1.1
局部创建
dotnet new tool-manifest 会在本地创建一个\.config\dotnet-tools.json 文件
dotnet tool install dotnet-ef 会得到本地的版本
一、mysql反向生成指令
dotnet ef dbcontext scaffold "server=127.0.0.1;userid=root;pwd=xxxx;port=3306;database=meng;" Pomelo.EntityFrameworkCore.MySql
帮助
dotnet ef dbcontext scaffold -h
中文
<CONNECTION>数据库的连接字符串。 <PROVIDER>要使用的提供程序。(例如。Microsoft.EntityFrameworkCore.SqlServer) 选项: -d |——数据注释使用属性来配置模型(如果可能)。如果省略,则只使用fluent API。 -c |——context<NAME>DbContext的名称。 --context dir<PATH>放置DbContext文件的目录。路径是相对于项目目录的。 -f |——强制覆盖现有文件。 -o |——output dir<PATH>要放入文件的目录。路径是相对于项目目录的。 --模式<schema\u NAME>。。。要为其生成实体类型的表的架构。 -t |——表格<表格名称>。。。要为其生成实体类型的表。 --使用数据库名称直接从数据库中使用表名和列名。 --json显示json输出。 -p |——project<project>要使用的项目。 -启动项目<project>要使用的启动项目。 --framework<framework>目标框架。 --配置<配置>要使用的配置。 --runtime<runtime_IDENTIFIER>要使用的运行时。 --msbuildprojectextensionspath<PATH>MSBuild项目扩展路径。默认为“obj”。 --不生成不生成项目。仅当生成是最新的时才使用此选项。 -h |--help显示帮助信息 -v |——verbose显示详细输出。 --无颜色不给输出着色。 --使用级别前缀output prefix output。
生成到指定文件夹
dotnet ef dbcontext scaffold "server=127.0.0.1;userid=root;pwd=xxxx;port=3306;database=meng;" Pomelo.EntityFrameworkCore.MySql -o Models
更新 加 -f 强制覆盖文件
dotnet ef dbcontext scaffold "server=127.0.0.1;userid=root;pwd=xxxx;port=3306;database=meng;" Pomelo.EntityFrameworkCore.MySql -o Models -f
二、Oracle
导入包
ef.tools
oracle.efcore
-f 强制覆盖,-o model路径 , -c context类名 , --context-dir <path> 指令dbcontext的路径 ,-v 显示执行详情 .net 5.0开始 可以命名类的命名空间 和context的命名空间 --namespace Your.Namespace --context-namespace Your.DbContext.Namespace
安装工具
dotnet tool install -g dotnet-ef --version 3.0.0-*
生成文件
dotnet ef dbcontext scaffold "User Id=XX;Password=XXX;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=1521)) (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));"Oracle.EntityFrameworkCore -f -o Models
子文件夹 aa/a
dotnet ef dbcontext scaffold "User Id=XXX;Password=XXX;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX)(PORT=1521)) (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));"Oracle.EntityFrameworkCore -f -o DbContextModels\PMS1