https://jishuin.proginn.com/p/763bfbd2b798
回到FreeSql.Generator 命令行
对于此工具的使用可参考 https://github.com/dotnetcore/FreeSql/wiki/DbFirst
源码位置 https://github.com/dotnetcore/FreeSql/tree/master/Extensions/FreeSql.Generator
前提是本地安装了.net core 3.1 的sdk.
怎么使用呢。
安装 dotnet-tool 生成实体类
dotnet tool install -g FreeSql.Generator
新建目录,在地址栏输入 cmd 快速打开命令窗口,输入命令:
FreeSql.Generator –help
我们可以看到
C:\Users\igeekfan\Desktop\code>FreeSql.Generator –help
__ __ _
/ / __ _ _ / / _ _ / /
/ / / _// -)/ -) _\ \ / _ `/ / /
// // _/ _/ /___/ \, / //
//
https://github.com/2881099/FreeSql v1.5.0
使用 FreeSql 快速生成数据库的实体类
更新工具:dotnet tool update -g FreeSql.Generator
> FreeSql.Generator -Razor 1 -NameOptions 0,0,0,0 -NameSpace MyProject -DB "MySql,Data Source=127.0.0.1;..."
-Razor 1 * 选择模板:实体类+特性
-Razor 2 * 选择模板:实体类+特性+导航属性
-Razor "d:\diy.cshtml" * 自定义模板文件
-NameOptions * 总共4个布尔值,分别对应:
# 首字母大写
# 首字母大写,其他小写
# 全部小写
# 下划线转驼峰
-NameSpace * 命名空间
-DB "MySql,Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;Initial Catalog=数据库;Charset=utf8;SslMode=none;Max pool size=2"
-DB "SqlServer,Data Source=.;Integrated Security=True;Initial Catalog=数据库;Pooling=true;Max Pool Size=2"
-DB "PostgreSQL,Host=192.168.164.10;Port=5432;Username=postgres;Password=123456;Database=数据库;Pooling=true;Maximum Pool Size=2"
-DB "Oracle,user id=user1;password=123456;data source=//127.0.0.1:1521/XE;Pooling=true;Max Pool Size=2"
-DB "Sqlite,Data Source=document.db"
-DB "Dameng,server=127.0.0.1;port=5236;user id=2user;password=123456789;database=2user;poolsize=2"
Dameng 是国产达梦数据库
-Filter Table+View+StoreProcedure
默认生成:表+视图+存储过程
如果不想生成视图和存储过程 -Filter View+StoreProcedure
-Match 正则表达式,只生成匹配的表,如:dbo\.TB_.+
-FileName 文件名,默认:{name}.cs
-Output 保存路径,默认为当前 shell 所在目录
推荐在实体类目录创建 gen.bat,双击它重新所有实体类
更新命令行
dotnet tool update -g FreeSql.Generator
这里lin-cms-dotnetcore这个项目来测试。
数据库表名是下划线,字段也是下划线方式。
-Razor 指定 第一个模板
-NameOptions 0,0,0,1 最后一个1,代表 下划线转驼峰,满足C#命名规则
-NameSpace 指定了命名空间 LinCms.Core.Entities
-DB 就是数据库的相关配置
mysql 本地地址 127.0.0.1 3306端口 用户名 root 密码123456 数据库 lin-cms
-Match book 这样就能只生成book,支持正则表达式,如 -Math lin_user 就会生成以lin_user开头的表。如dbo.TB_.+,会生成以TB开头的表。即只生成匹配的表
执行此命令。