프로젝트에서 엔터티 클래스를 생성하는 경우가 종종 있는데, 데이터베이스가 비교적 크거나 테이블 구조를 자주 수정해야 하는 경우 수동으로 엔터티 클래스를 생성하는 효율성이 매우 낮습니다.
1. 필기 코드 생성 및 엔티티 클래스 도구 생성
Java 코드를 작성하기 전에는 Mybatis Generator와 같은 도구를 사용하여 엔터티 클래스 코드를 생성하는 데 익숙했기 때문에 C#에서도 엔터티 클래스 생성 도구를 작성할 수 있는지 궁금했습니다. 바퀴를 재발명하지 않는다는 원칙에 따라 인터넷을 검색한 결과 아주 좋은 도구인 CreateEntityModel을 발견했습니다. 이 도구는 인터페이스가 없지만 코드가 매우 잘 작성되었으며 빌더 모드를 채택하여 다른 데이터베이스를 지원하므로 자체적으로 새 데이터베이스를 확장하는 데 편리합니다.
원래 도구는 MySQL 및 SQLServer 데이터베이스만 지원했기 때문에 요구 사항을 충족할 수 없었기 때문에 이 코드를 기반으로 확장하고 PostgresSql 데이터베이스에 대한 지원을 추가했습니다.데이터베이스 연결 도구는 Npgsql 클래스 라이브러리를 사용합니다.
소스 코드는 잘 알려진 데이트 웹사이트에 있습니다: https://github.com/lordum/CreateEntityModel.git
소통하는 여러분을 환영합니다.
또한 원저작자의 주소도 기재되어 있으며, 모두 지원합니다: https://github.com/LiuHuiGang/CreateEntityModel.git
2. 코드 생성기 FreeSql.Generator를 사용하여 생성
코드 생성기 FreeSql.Generator는 엔티티 클래스를 생성하고 데이터베이스 엔티티에서 엔티티의 동적 생성을 지원할 수 있는 FreeSql용 코드 생성기입니다. 기본적으로 두 가지 템플릿이 있습니다. Razor를 기반으로 사용자 지정 템플릿을 지정할 수 있습니다.
- 1개의 dotnet-tool 설치 FreeSql.Generator
dotnet tool install -g FreeSql.Generator
- 2 새 디렉터리를 만들고 주소 표시줄에 cmd를 입력하여 명령 창을 빠르게 연 후 다음 명령을 입력합니다.
FreeSql.Generator --help
명령줄 도구는 엔터티 클래스 생성에 큰 이점이 있으며 후속 세대 커버리지 작업은 원 클릭 완료와 동일하며 Mac/Linux 플랫폼을 지원합니다.
명령에 대한 도움말 설명은 다음과 같습니다.
C:\WINDOWS\system32>FreeSql.Generator --help
____ ____ __
/ __/ ____ ___ ___ / __/ ___ _ / /
/ _/ / __// -_)/ -_) _\ \ / _ `/ / /
/_/ /_/ \__/ \__/ /___/ \_, / /_/
/_/
# Github # https://github.com/2881099/FreeSql v2.0.105
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=.;initial catalog=数据库;User Id=sa;Password=123456;TrustServerCertificate=true;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 "Firebird,database=localhost:D:\fbdata\EXAMPLES.fdb;user=sysdba;password=123456;max pool size=2"
-DB "Dameng,server=127.0.0.1;port=5236;user id=2user;password=123456789;database=2user;poolsize=2"
-DB "KingbaseES,server=127.0.0.1;port=54321;uid=USER2;pwd=123456789;database=数据库"
-DB "ShenTong,host=192.168.164.10;port=2003;database=数据库;username=SYSDBA;password=szoscar55;maxpoolsize=2"
* Dameng(达梦数据库)、KingbaseES(人大金仓数据库)、ShenTong(神舟通用数据库)
-Filter Table+View+StoreProcedure
默认生成:表+视图+存储过程
如果不想生成视图和存储过程 -Filter View+StoreProcedure
-Match 表名或正则表达式,只生成匹配的表,如:dbo\.TB_.+
-FileName 文件名,默认:{name}.cs
-Output 保存路径,默认为当前 shell 所在目录
推荐在实体类目录创建 gen.bat,双击它重新所有实体类