C#은 데이터베이스에 연결하여 엔티티 클래스를 자동으로 생성합니다.

프로젝트에서 엔터티 클래스를 생성하는 경우가 종종 있는데, 데이터베이스가 비교적 크거나 테이블 구조를 자주 수정해야 하는 경우 수동으로 엔터티 클래스를 생성하는 효율성이 매우 낮습니다.

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,双击它重新所有实体类

공식 문서

추천

출처blog.csdn.net/zhoulizhu/article/details/123916644