动软代码生成V2.74模版简介

简介: 最近发现很多人用动软代码生成,确实方便,有些经验记录下,以后查看回顾。   ..\Maticsoft\Codematic2\Template\TemplateFile 为模板文件夹,直接在目录下新建文件夹【我的自定义模版】,有个【模版示例.cmt】也直接复制到自定义文件下好了。

  最近发现很多人用动软代码生成,确实方便,有些经验记录下,以后查看回顾。

  ..\Maticsoft\Codematic2\Template\TemplateFile 为模板文件夹,直接在目录下新建文件夹【我的自定义模版】,有个【模版示例.cmt】也直接复制到自定义文件下好了。在动软模版管理代码模板右键刷新就看见了,选择模板右键编辑并查看进入模板编辑。

 

<#@ template language="c#" HostSpecific="True" #>
<#@ output extension= ".cs" #>
<#
	TableHost host = (TableHost)(Host);
	host.Fieldlist.Sort(CodeCommon.CompareByintOrder);
#>

 

语言是C#,输出文件是.cs,没啥好说的。TableHost  host 就是当前的表信息,主要使用字段集合,下面的代码 host.Fieldlist 就是列的集合.Sort给集合排序。这里要注意模版代码的格式 <# #> 在这里的代码为模版识别的代码,不在这里的就是写啥生成啥。

  基本语法知道了,下面我给出我的message生成代码分析下,循环列按固定格式生成。

	<# foreach (ColumnInfo c in host.Fieldlist)
		{ #>
private string _str<#= c.ColumnName.ToString().Split('_')[2] #>;// <#=  c.Description #>  
		<# } #>
		
		<# foreach (ColumnInfo c in host.Fieldlist)
		{ #>/// <summary>
		/// <#= c.Description == "" ? c.ColumnName : c.Description #>
        /// </summary>		
		public string str<#= c.ColumnName.ToString().Split('_')[2] #>
        {
            get{ return ((!string.IsNullOrEmpty(_str<#= c.ColumnName.ToString().Split('_')[2]#>)) ?_str<#= c.ColumnName.ToString().Split('_')[2]#>: ""); }
            set{ _str<#= c.ColumnName.ToString().Split('_')[2]#> = value; }
        }    
		 
		<# } #>


 

支持语言是C# 当然有foreach 而 host.Fieldlist列集合的类型就是ColumnInfo 这里定义c 要注意<# #>格式。c.ColumeName为列名称可以.ToString()可以分组Split,c.Description为得到备注信息及数据库里字段说明,这个很有用,省着自己看不明白。第二段有了个三元表达式 如果说明为空则输出列名,注意标签<#= #>这里多个了= 表示输出不是处理代码。到最后注意 <# } #> 表示foreach的结束。关于.Split('_')[2]就是数据库字段的设计了,不细说。<#= host.GetModelClass(host.TableName) #>为输出表名。还有的判断用到了参数,设置个<#int i#>记录换行,<#if(i==5){i=0;#>");<#="\n"#><#}#> 记录和输出换行。

  主要就是理解模板输出不在标签里的就是些啥输出啥,我一般就是把写好的代码都粘到模板里然后哪是动态的改哪。关于直接生成三层框架,这个跟自己的代码规范和数据库设计有关没有什么通用的地方,就不说明了。

 

目录
相关文章
|
7月前
|
JavaScript Java
若依框架 - - - 自定义打印模版
若依框架 - - - 自定义打印模版
644 0
若依框架 - - - 自定义打印模版
|
JavaScript
若依代码生成自带导入功能
若依代码生成自带导入功能
557 0
|
2月前
|
编译器 C++
C++之模版进阶篇(上)
C++之模版进阶篇(上)
16 0
|
2月前
|
Unix 编译器 Linux
C++之模版进阶篇(下)
C++之模版进阶篇(下)
48 0
|
算法 编译器 C++
C++模版基础
C++模版基础
48 0
|
7月前
|
XML 存储 数据格式
使用自定义模板和示例项目开发LabVIEW项目
使用自定义模板和示例项目开发LabVIEW项目
53 1
|
7月前
|
安全 编译器 C++
C++之模版初阶(简单使用模版)
C++之模版初阶(简单使用模版)
|
资源调度 前端开发
前端工程化:plop自动生成文件(快速开发,创建模板文件)
前端工程化:plop自动生成文件(快速开发,创建模板文件)
221 0
|
存储 Java 测试技术
一文了解编程领域的模版
一文了解编程领域的模版
一文了解编程领域的模版
|
关系型数据库 数据库 PostgreSQL
如何使用代码生成插件easycode
如何使用代码生成插件easycode
196 0
如何使用代码生成插件easycode