动软代码生成V2.74模版简介
最近发现很多人用动软代码生成,确实方便,有些经验记录下,以后查看回顾。
..\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"#><#}#> 记录和输出换行。
主要就是理解模板输出不在标签里的就是些啥输出啥,我一般就是把写好的代码都粘到模板里然后哪是动态的改哪。关于直接生成三层框架,这个跟自己的代码规范和数据库设计有关没有什么通用的地方,就不说明了。
动软代码生成V2.74模版简介的更多相关文章
- 动软代码生成与 EntityFramework 实体生成模板
有用到EntityFrameWork的同学们,可以用用. 实体工程中添加EF6的dll 还有 ValidBox4Mvc.ValidRules.dll应用到项目中,此dll下载地址:http://www ...
- asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(三)—— 简单登录页面+sqlite+动软代码生成器的使用
上一节讲到利用easyui的layout.tree.tab和datagrid创建用户管理的页面,注意利用到easyui的页面一定要按顺序添加jQuery和easyUI的.js和.css样式,灵活查看e ...
- C# 嵌入dll 动软代码生成器基础使用 系统缓存全解析 .NET开发中的事务处理大比拼 C#之数据类型学习 【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持 基于EF Core的Code First模式的DotNetCore快速开发框架 【懒人有道】在asp.net core中实现程序集注入
C# 嵌入dll 在很多时候我们在生成C#exe文件时,如果在工程里调用了dll文件时,那么如果不加以处理的话在生成的exe文件运行时需要连同这个dll一起转移,相比于一个单独干净的exe,这种形 ...
- 手把手教你用动软.NET代码生成器实例教程
动软实战攻略 手把手教你用动软 文档编号:20110421 版权所有 © 2004-2011 动软 在线帮助:http://help.maticsoft.com 目录 一. 产品介绍 ...
- 解决“动软代码生成器在SqlServer中会将唯一索引识别为主键"的Bug
动软代码生成器在SqlServer中,生成的代码会将唯一索引错误地识别为主键, 反编译源代码后,发现其中的SQL条件有误,现修复此Bug. 修复方法:将附件中的”Maticsoft.DbObjects ...
- 动软Model 模板 生成可空类型字段
动软代码 生成可空类型 <#@ template language="c#" HostSpecific="True" #> <#@ outpu ...
- 【动软.Net代码生成器】连接MySQL生成C#的POCO实体类(Model)
首先是工具的下载地址: 动软.Net代码生成器 该工具官网自带完整教程: 文档:http://www.maticsoft.com/help/ 例子:http://www.maticsoft.com/h ...
- CodeMatic动软自动生成Nhibernate
前两天调查了下自动生成工具MyGeneration和codesmith前一个版本已经不更新了后面一个太高级生成 的代码包含了太多东西,没整明白.不过生成的xmlmapping很强大.所以干脆整合一下c ...
- 澳洲最大的华资快递公司ACE 签约动软微信商城系统!
ACE-平安立达快递是澳洲最大的华资快递公司ACE平安立达,总部设在Boxhill,同时在中国成立了进口食品专营连锁加盟店“澳莱优品”,目前已经有近20家加盟店,14年底国内计划开到60家店. 201 ...
随机推荐
- oracle 空置排在最后显示
nulls last select * from emp order by comm select * from emp order by comm desc select * from emp or ...
- Linux(Centos)之安装tomcat并且部署Java Web项目(转)
1.准备工作 a.下载tomcat linux的包,地址:http://tomcat.apache.org/download-80.cgi,我们下载的版本是8.0,下载方式如图: b ...
- 添加view类图中的二级菜单
void CFafdsafasdfasfasView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message han ...
- 手机时间选择插件 Jquery
// 时间选择 var currYear = (new Date()).getFullYear() var opt_data = { preset: 'date', //日期 theme: 'andr ...
- 搭建本地Nuget服务器并使用NuGet Package Explorer工具打包nuget包
1.什么是Nuget: 百度百科描述: Nuget是 ASP .NET Gallery 的一员.NuGet 是免费.开源的包管理开发工具,专注于在 .NET 应用开发过程中,简单地合并第三方的组件库. ...
- 转:CRect类 的介绍
类CRect是对Windows结构RECT的封装,凡是能用RECT结构的地方都可以用CRect代替. 结构RECT表示一个矩形的位置和尺寸,其定义为: typedef struct tagRECT{ ...
- Iterator pattern(c++实现)
概述: 在现在的电视机中,我们使用[后一个]和[前一个]按钮可以很方便的换台,当按下[后一个]按钮时,将切换到下一个预置的频道.想象一下在陌生的城市中的旅店中看电视.当改变频道时,重要的不是几频道,而 ...
- android项目中各个文件的介绍
src:java源码gen:自动生成 R.javaandroid.jarandroid Dependenvies 支持jar包assets:资产目录 小的数据库 网页 bin:编译生成的临时文件lib ...
- TCP 协议
== 已经了解了以太网和IP了,下面我们进入传输层,开始讲解TCP协议. == 仍然先把TCP报文段的格式放在这里,然后我们看图说话: TCP报文段也分为首部和数据两部分,首部默认情况下一般是20字节 ...
- python通过代理刷网页点击量
python通过代理刷网页点击量 更新异常处理情况 @time 2013-0803 更新循环里计数问题和随机等待时间问题 #!/usr/bin/python #-*- coding:utf-8 -*- ...