codesmith mysql 注释_代码生成工具:CodeSmith 安装、改造适配Mysql 字段注释、DLL修改 及批量生成实体类代码...

article/2025/9/15 19:28:44

之前一直使用动软的代码自动生成工具,无奈现在连接数据库时Test Connect 能成功,连接却失败,只能另觅工具了,搜索一翻发现了 CodeSmith,据说一个很好用的工具,因为是个付费版本。

最新版本:8.0,官网下载需注册。

网上版本下载地址含注册机:http://www.drv5.cn/sfinfo/15948.html

1、安装及注册参考:

7.0版本的安装及注册:https://www.cnblogs.com/dunitian/p/4096917.html

8.0版本的安装及注册:https://blog.csdn.net/qq_31384551/article/details/80238656

值得注意的是:注册 7.0的版本 Prefix: 是 CS70P-  ; 8.0则是CS80P-

2、连接MySql数据库:

打开数据库列表:

2716d6ade67b1410252c9b79c479a8bc.png

添加数据库:

6eacd507cc4223b3e80f3bf493cde0a8.png

值得注意的是连接字符串:Server=127.0.0.1;User Id=root;Password=pwd;Database=DbName;  可能成功连接并读取到表;

使用此形式:Data Source=127.0.0.1;port=3306;Initial Catalog=DbName;user id=root;password=pwd; 能成功连接但是读取表列表失败

3、生成实体类代码

新建Entity.cst模板文件,代码参考自网络(不记得哪里抄的了)

/*

*本代码由代码生成器自动生成,请不要更改此文件的任何代码。

*生成时间:

*生成者:

*/

using System;

namespace

{

///

///表的实体类

///

public class

{

///

///

///

public

{

get;set;

}

}

}

//得到类的名字(由表名而来)

public string GetClassName()

{

string s=this.SourceTable.Name;//取到表名

//s=s.Replace("st_","");

//判断表名是不是以S结尾,如果是去掉S

if (s.EndsWith("s"))

{

s=s.Substring(0,s.Length-1);

}

return StringUtil.ToPascalCase(s)+"Entity";

}

如下图:

4823df577008a99a7c14fcf712c97b61.png

模板中定义的属性在右下角中对应显示与编辑

选择生成的表后,点击Generate按钮即可生成对应表的实体类

4、批量生成

有别于动软的生成工具,界面选择批量生成即可,而是需要编写代码批量生成,这也有一个好处很方便定制。

新建另一模板: Tables.cst

foreach (TableSchema table in this.SourceDB.Tables)

{

Entity mtc=new Entity();

mtc.SourceTable=table;

mtc.RenderToFile("C:\\Projects\\Documents\\"+GetClassName(table)+".cs",true);

}

%>

//得到类的名字(由表名而来)

public string GetClassName(SchemaExplorer.TableSchema table)

{

string s=table.Name;//取到表名

s=s.Replace("st_","");

//判断表名是不是以S结尾,如果是去掉S

if (s.EndsWith("s"))

{

s=s.Substring(0,s.Length-1);

}

return StringUtil.ToPascalCase(s)+"Entity";

}

通过注模板以关联批量生成的内容。

321a611b27b931ecfcd3151efedc135e.png

同理选取数据库,点击Generate按钮后,对应的代码将生成到对应目录

5、给生成的实体类属性添加注释(MySql)

对于MySql对应的实体类,并没期望出现注释说明,如下图

ed6f63794fbf9e8a96e57f11447bd8df.png

原因及解决方法,参考:

https://blog.csdn.net/nihaoapengyou/article/details/52587986

网上也有对应的Dll提供,但对8.0无效,但我是我没找到。可能是因为7.0版本软件没有对Dll进行强签名,而8.0开始做了。

怎么办?思路还是跟参考的一样。反编译,修改原码,再重新编译成dll 再替换。但可能是因为做了强签名的原因,替换后程序出错了。所以可能现存网上的Dll也是因为签名的问题出错。

签名,我不大熟悉,只能再次借助工具了:.NET Reflector 和 Reflexil

下载 Reflexil 的Relector版 插件:https://www.softpedia.com/get/Programming/Components-Libraries/Reflexil.shtml

在.NET Reflector 中添加插件

工具栏-->Tools-->Add-Ins

46cfa81c97c2cbb973ff0c427acc5291.png

引入解压出来的 Reflexil.Reflector.dll 后,Tools 菜单下面即会出来Reflexil 插件工具

接下来用Reflector 打开Dll

8bf9afc2d7679f8b9e1c4e37d29554d0.png

打到需要修改的地方:

e0b94792649b0be2c13af422e54c436e.png

然后点击:Tools--->Reflexil 工具

将出现Reflexi工具栏:

5911e0dddd5b6f1ae0ec4b51d143e215.png

又由于我IL语言不怎得,所以决定使用Extra 字段来替换

右键修改查询SQL:

a38a555fa0d3bf28145293f674b8cbbd.png

将 EXTRA 修改为 COLUMN_COMMENT

再次修改赋值部份:

e366c98faf7be7a94fb5fd82c48de525.png

将 CS_ColumnExtra  修改为 CS_Description

至此修改完毕,保存DLL

eaa497ac8e465369e838a807d5eec7a8.png

如果你也出现了以下意外:

e9fb57afd20390ba50e20d5319283507.png

就去把.NET SDK下的 sn.exe。一般可以在这里找到(C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools) 拷贝到 插件的目录下:

76eb50647422242838b15143f3e549d3.png

再次保存:

3ab7540c7f26be8da290806878b77c3d.png

点击 Register it for.. 按钮,保存Dll 。

然后再使用该DLL 覆盖 CodeSmith 的

4a73c2c0d9b9a9f041b8b7cc01b0ac36.png

完成!!!

再次使用CodeSmith 批量生成,注释出来了。

8da370691dc70a4a782f9c6aff362698.png


http://chatgpt.dhexx.cn/article/kr3SOW2N.shtml

相关文章

认识CodeSmith

一:下载与激活 1.下载绿色版CodeSmith7.0 http://download.csdn.net/download/laoge/6859701 2.使用激活工具CodesmithKeyGenerator.exe激活CodeSmith7.0 (a)打开软件TemplateEditor.exe,进入CodeSmith Generator窗口,…

CodeSmith模板

CodeSmith的模板默认是放在用户目录下的,在安装的时候可以自定义: D:\Users\admin\Documents\CodeSmith Generator\Templates 上次放在c盘电脑重装就没有了,好多模板都丢失了,于是又得重新写,为了方便就记到博客园里吧…

CodeSmith连Oracle

据说CodeSmith连Oracle特别麻烦,什么WIN7下不行,64位下不行。之前有个同事为了用上CodeSmith,还特地装了个XP虚拟机。 其实,还是那个连接串的问题。 操作系统64位,就要用64位的驱程。但我们机器上装的是oracle 10g&a…

codesmith mysql 注释_完美解决CodeSmith无法获取MySQL表及列Description说明注释的方案...

问题描述: CodeSmith是现在比较实用的代码生成器,但是我们发现一个问题: 使用CodeSmith编写MySQL模板的时候,会发现一个问题:MySQL数据表中的列说明获取不到,也就是column.Description。如图: 我…

codesmith mysql 模板_CodeSmith for MySQL template

对于.NET平台上的代码生成器来说,codesmith是一个非常好的选择。 以前在学院实验室用的都是SQL server数据库,老师给的一套codesmith模板用来生成model/DAL/BLL很是方便。 不过后来放弃SQL server 投入MySQL之后,刚开始都是手写SQL&#xff0…

如何使用CodeSmith批量生成代码(原创系列教程)

用它完成批量代码生成的工作啦. 下面我会一步步的解释如何用CodeSmith实现预期的结果的,事先声明一下,在此只做一个简单的Demo,并不详细的讲解CodeSmith各个强大的功能,有兴趣的朋友可以打开CodeSmith的帮助文档了解.我只做个抛砖引玉,希望能激起大家更多思想的火花~ 先看看C…

codesmith生成SQLSERVER实体(带注释)

记录用codesmith生成SQLSERVER数据库实体的一个模板&#xff0c;具体链接数据库和使用方式&#xff0c;大家可以百度&#xff0c;有非常多的资料&#xff0c;只记录一个模板&#xff1a; <% CodeTemplate Language"C#" TargetLanguage"C#" Debug"…

mysql codesmith_CodeSmith MySql

CodeSmith MySql (2012-08-22 10:41:49) 标签&#xff1a; 杂谈 安装&#xff1a; mysql-connector-net-6.3.7.msi 否则在CodeSmith中链接数据库时提示需要框架程序。 connect string&#xff1a; 正确&#xff1a;DatabaseXXX;Data SourceXXX;User IdXXX;PasswordXXX;portXXX …

CodeSmith模板代码生成实战详解

为了提高开发效率&#xff0c;节约开发时间&#xff0c;我们采用了codesmith根据自定义模板&#xff0c;生成代码功能。让单表的增删改查功能从数据访问层到ui展示层一键批量生成。下面就开始codeSmith模板编写。 官网地址&#xff1a;http://www.codesmithtools.com 下载地址&…

CodeSmith 简单使用和常用模板

1、简介 CodeSmith 是一种基于模板的代码生成工具&#xff0c;它使用类似于 ASP.NET的语法来生成任意类型的代码或文本。 2、软件布局 整体布局和visual studio系列相似&#xff0c;用过VS开发对此软件布局会很熟悉&#xff0c;加上模板语句类似ASP.NET对.NET开发人员相对友…

CodeSmith介绍

什么是CodeSmith&#xff1f;从字面上直译可以看作“代码工匠”。这倒是个很拟人化的名称&#xff0c;顾名思义&#xff0c;CodeSmith的目标就是根据模板生成规范可用的代码&#xff0c;为程序员减轻工作负担。程序员是软件开发团队中的最小单位&#xff0c;有什么任务都只能自…

waf绕过详解

目录 waf防护原理讲解 目录扫描绕过waf 手工注入绕过waf sqlmap注入绕过waf 编写sqlmap绕过waf脚本 过waf一句话编写讲解 菜刀连接绕过waf webshell上传绕过waf 提权绕过waf waf绕过原理详解 了解waf防护原理 查看waf防护位置 熟悉防护规则 了解防护机制 查看拦截…

WAF与网络防火墙的区别在哪?

WAF是英文Web Application Firewall的简称&#xff0c;也称为网站应用级入侵防御系统或Web应用防火墙&#xff0c;是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。 网络防火墙是一种用来加强网络之间访问控制的特殊网络互联设备。计算机流入流出…

WAF(Web应用层防火墙)了解学习

WAF---Web应用层防火墙了解学习 WAF是什么WAF预防的攻击类型WAF部署方式WAF安全模式开放Web应用安全项目&#xff08;OWASP&#xff09;WAF和DDosWAF测试WAF和传统防火墙的区别总结 参考文档: 安全文章相关Web应用防火墙WAF简介 WAF是什么 WAF全称叫Web Application Firewall…

什么是 Web 应用防火墙(WAF)?

当下时候&#xff0c;网络攻击和针对网站的攻击与日俱增。同时&#xff0c;在我们的日常生活中&#xff0c;安全的重要性也迅速提升。因此&#xff0c;保证在线上世界的安全变得越来越重要。更重要的是&#xff0c;保护你的网站和所存储的数据的安全。所以&#xff0c;我们将介…

【网络安全】如何在Apache 安装开源 WAF

说明&#xff1a; 本文以Windows环境下的Apache安装mod_security为例&#xff0c; 介绍开源WAF产品的安装使用。 http://www.modsecurity.cn/ https://github.com/SpiderLabs/ModSecurity一、WAF基本介绍 WAF全称Web Application Firewall&#xff0c;即Web应用防火墙。Web应用…

WAF详解及WAF绕过

waf&#xff08;web application firewall&#xff09;: 原理&#xff1a; web应用防火墙&#xff0c;一款集网站内容安全防护、网站资源安全防护及流量保护功能为一体的服务器工具。为用户提供实时网站安全防护&#xff0c;避免各类针对网站的攻击带来的危害。&#xff08;核心…

waf入门

文章目录 waf入门什么是wafwaf一般都有哪些功能WAF部署模式WAF工作模式 规则引擎原理WAF动作WAF规则与报表WAF特征 waf入门 什么是waf Web应用防护系统&#xff08;也称为&#xff1a;网站应用级入侵防御系统。英文&#xff1a;Web Application Firewall&#xff0c;简称&…

WAF识别软件(WAFW00F)以及WAF绕过

责任声明&#xff1a; 本文章仅供学习交流使用&#xff0c;如有利用进行非法行为 上传者不承担任何责任&#xff0c;使用者后果自负 WAF防护分析 什么是WAF&#xff1f; Web应用防护系统分为两种&#xff1a;软件与硬件 安全公司内部的为硬件&#xff0c;个人或小企业为软件&…

IPS和WAF区别

写在前面&#xff1a; “前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。” 前言 - 床长人工智能教程 WAF与IPS的区别总结 谁是最佳选择&#xff1f; Web应用防护无疑是一个热门话题。…