irpas技术客

C#连接数据库自动生成实体类_TopFancy_c# 根据数据库生成实体类

大大的周 902

在项目中经常遇到要创建实体类的情况,数据库比较大或需经常修改表结构时,手动创建实体类的效率就很低。

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

官方文档


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #C #根据数据库生成实体类