CodeSmith 简单使用和常用模板
1、简介
CodeSmith 是一种基于模板的代码生成工具,它使用类似于 ASP.NET的语法来生成任意类型的代码或文本。
2、软件布局
整体布局和visual studio系列相似,用过VS开发对此软件布局会很熟悉,加上模板语句类似ASP.NET对.NET开发人员相对友好。大致布局如下:
注:本文截图和运行环境是CodeSmith Generator 8.0.1

3、连接数据库
添加数据源,具体如下图

SQL连接字符串示例
server=localhost;database=sales;user=root;CharSet=utf8;password=root;port=3306;Allow User Variables=True;
4、新建模板
打开模板浏览器,右击模板文件夹新建模板

5、模板执行

6、执行结果示例

7、常用模板
1)生成实体.cst
<%--
Name: 数据库表实体代码生成器
Author: GoodTime
Description: 实体
DateTime: 2022-1-13
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="C#" Debug="False" Description="Create a list of properties from database table." %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="Table that the object is based on." %>
<%@ Map Name="CSharpAlias" Src="System-CSharpAlias" Description="System to C# Type Map" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<% foreach (ColumnSchema column in this.SourceTable.Columns) { %>
public <%= CSharpAlias[column.SystemType.FullName] %> <%= StringUtil.ToPascalCase(column.Name) %>{ get;set; }
<% } %>
运行效果

2) 生成构造实体
<%--
Name: 数据库表实体代码生成器
Author: GoodTime
Description: 实体属性
DateTime: 2022-1-13
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="C#" Debug="False" Description="Create a list of properties from database table." %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="Table that the object is based on." %>
<%@ Map Name="CSharpAlias" Src="System-CSharpAlias" Description="System to C# Type Map" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<% foreach (ColumnSchema column in this.SourceTable.Columns) { %>
private <%= CSharpAlias[column.SystemType.FullName] %> _<%= StringUtil.ToCamelCase(column.Name) %>;
public <%= CSharpAlias[column.SystemType.FullName] %> <%= StringUtil.ToPascalCase(column.Name) %>
{
get { return _<%= StringUtil.ToCamelCase(column.Name) %>; }
set { _<%= StringUtil.ToCamelCase(column.Name) %> = value; }
}
<% } %>
运行效果

3)生成实体类
<%--
Name: 数据库表实体代码生成器
Author: GoodTime
Description: 实体类
DateTime: 2022-1-13
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="C#" Debug="False" Description="Create a list of properties from database table." %>
<%@ Property Name="SourceData" Type="SchemaExplorer.DatabaseSchema" Category="Context" Description="Table that the object is based on." %>
<%@ Map Name="CSharpAlias" Src="System-CSharpAlias" Description="System to C# Type Map" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<%foreach( var tb in SourceData.Tables){ %>
[TableName("<%=tb.Name %>")]
<%foreach (var pk in tb.PrimaryKey.MemberColumns){ %>
[PrimaryKey("<%= pk.Name%>")]
<%} %>
[ExplicitColumns]
public partial class <%=StringUtil.ToPascalCase(tb.Name) %> ()
{
<%foreach( var cl in tb.Columns) {%>
[Column]
public <%=CSharpAlias[cl.SystemType.FullName]%> <%=StringUtil.ToPascalCase(cl.Name) %> { get; set; }
<%} %>
} <%} %>
运行效果

8、附录
CodeSmith下载地址:https://www.codesmithtools.com/downloads
CodeSmith官方文档:https://codesmith.atlassian.net/wiki/spaces/Generator/pages/529119/User+s+Guide
CodeSmith教程文档:https://www.w3cschool.cn/codesmith/
以上就是CodeSmith 简单使用和常用模板的介绍,做此记录,如有帮助,欢迎点赞关注收藏!
CodeSmith 简单使用和常用模板的更多相关文章
- (转)Java中使用正则表达式的一个简单例子及常用正则分享
转自:http://www.jb51.net/article/67724.htm 这篇文章主要介绍了Java中使用正则表达式的一个简单例子及常用正则分享,本文用一个验证Email的例子讲解JAVA中如 ...
- Vue常用模板语法
常用模板语法 本篇将在上一篇的基础上记录文本渲染.表达式.过滤器以及常用指令的简单用法. 一.文本渲染 Vue支持动态渲染文本,即在修改属性的同时,实时渲染文本内容.同时为了提高渲染效率,也支持只 ...
- Linux的简单介绍和常用命令的介绍
Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...
- NDK(10)Android.mk各属性简介,Android.mk 常用模板
参考 : http://blog.csdn.net/hudashi/article/details/7059006 本文内容: Android.mk简介, 各属性表, 常用Android.mk模板 1 ...
- IDEA学习——模板及其常用模板
模板及其常用模板 (1)psvm (2)sout sout / soutp / soutv / 变量.sout (3)fori iter增强for循环 itar普通for循环 (4)list.for ...
- 简单的Verilog测试模板结构
这里记录一下曾经用到的简单的测试模板,如下所示: //timescale `timescale 1ns/1ns module tb_module(); //the Internal motivatio ...
- 简单的html渲染模板引擎
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- html5常用模板下载网站
html5常用模板下载网站 开创者素材.站长素材.模板之家 推荐葡萄家园素材网,他们网页模板栏目有个HTML模板,很多静态源码.应该是你所需要的. html静态页面模板 还是服饰素材啊 朋友 设计云 ...
- NDK(10)Android.mk各属性简介,Android.mk 常用模板--未完
参考 : http://blog.csdn.net/hudashi/article/details/7059006 1. Android.mk简介 Android.mk文件是GNU Makefile的 ...
- 简单实现C++Stack模板
栈的特点是先进后出以及只能在栈顶进行插入和删除操作 本次实现的栈的基本操作: 1)弹栈 2)压栈 3)求栈大小 4)求栈容量 5)判断栈空 6)获取栈顶元素 1.用数组的方式实现栈基本操作 /** * ...
随机推荐
- 云原生之旅 - 14)遵循 GitOps 实践的好工具 ArgoCD
前言 Argo CD 是一款基于 kubernetes 的声明式的Gitops 持续部署工具. 应用程序定义.配置和环境都是声明式的,并受版本控制 应用程序部署和生命周期管理都是自动化的.可审计的,并 ...
- FluentFTP能连接却报未将对象引用设置到对象的实例。
本来项目中用的好好的FTP下载传输,不知道从什么时候开始读取不到了,也上传不了.实际读取的是本地缓存的.因为同事上传不了文件和图片才发现.上源码! #region 下载文件 static byte[] ...
- 解决fpdf不能写入中文问题
安装依赖 pip3 install FPDF -i https://mirrors.aliyun.com/pypi/simple fpdf 原生是php调用的,不过他也提供了python的调用方式 示 ...
- form enctype="multipart/form-data" ajax 文件上传
<form method="post" enctype="multipart/form-data" id="resource"> ...
- Oracle 一对多将多行数据整理为一行
在开发中一对多的关系经常用到,昨天遇到一个客户问题,要求将所有反馈任务的信息整理为一行展示并导出excel. 我数据库对应关系:通任务task对应feedback表多个反馈,也就是说每个任务都有很多条 ...
- 4.7:Hive操作实验
〇.概述 1.拓扑结构 2.目标 通过Hive实验熟悉Hive的基本操作 一.操作流程 1.启动环境 2.启动hive 输入 cd /home/user/bigdata/apache-hive-2.3 ...
- K8S 部署电商项目
Ingress 和 Ingress Controller 概述 在 k8s 中为什么会有 service 这个概念?Pod 漂移问题 Kubernetes 具有强大的副本控制能力,能保证在任意副本(P ...
- DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead
// 引入mongoose模块 const mongoose = require('mongoose'); // 链接数据库 mongoose.set('useCreateIndex', true) ...
- Go 快速入门指南 - 序言
这本书是写什么的? 这是一本 Go 语言快速入门手册,目标读者是有任一编程语言基础,希望以最快的时间 (比如一个周末) 入门 Go 语言. 这本书应该怎么读? 书中几乎没有较长篇幅的理论知识,更多的是 ...
- 痞子衡嵌入式:MCUBootUtility v4.0发布,开始支持MCX啦
-- 痞子衡维护的 NXP-MCUBootUtility 工具距离上一个大版本(v3.5.0)发布过去 9 个月了,这一次痞子衡为大家带来了版本升级 v4.0.0,这个版本主要有两个重要更新需要跟大家 ...