DataUml Design 教程5-代码模板介绍(甚于T4模板技术)

DataUml Design 代码模板完全基于C#语言来编写的。不懂写模板的可以请教作者,随时欢迎。下面是一段模板代码,这段代码可以获取一个类结构的所有信息。

<#@ template language="C#" HostSpecific="True" #>

<#

NetUmlTemplateCodeHost host = (NetUmlTemplateCodeHost)(Host);

#>

命名空间:<#= host.ClassProperty.Namespace #>

类名:<#= host.ClassProperty.ClassName #>

类中文名:<#= host.ClassProperty.ClassOtherName #>

表名:<#= host.ClassProperty.TableName #>

可访问性:<#= host.ClassProperty.Accessibility==null?"":host.ClassProperty.Accessibility #>

修饰符:<#= host.ClassProperty.Modifier==null?"":host.ClassProperty.Modifier #>

用户:<#= host.ClassProperty.User==null?"":host.ClassProperty.User #>

备注:<#= host.ClassProperty.Remarks #>

数据库类型:<#= host.ClassProperty.DataAccessType #>

语言:<#= host.ClassProperty.ProjectLanage #>

字段:

<# foreach(var f in host.ClassProperty.Fields)

{

WriteLine("    属性名:"+f.PropertyName);

WriteLine("    属性别名:"+f.PropertyOtherName);

WriteLine("    属性类型:"+f.DataType);

WriteLine("    修饰符:"+f.Modifier);

WriteLine("    可访问性:"+f.Accessibility);

WriteLine("    是否空类型:"+f.IsNullType);

WriteLine("    初始值:"+f.InitialValue);

WriteLine("    是否只读:"+f.IsReadable);

WriteLine("    是否可写:"+f.IsWritable);

WriteLine("    字段名:"+f.FieldName);

WriteLine("    字段类型:"+f.FieldType);

WriteLine("    长度:"+f.FieldLength);

WriteLine("    是否为空:"+f.IsNull);

WriteLine("    是否主键:"+f.IsPrimaryKey);

if(f.IsPrimaryKey)

{

WriteLine("    主键类型:"+f.PrimaryKeyType);

}

WriteLine("    是否外键:"+f.IsForeignKey);

WriteLine("    默认值:"+f.DefaultValue);

WriteLine("    备注信息:"+f.Remarks);

if(f.Attributes.Count>0)

{

WriteLine("    属性:");

foreach(var p in f.Attributes)

{

WriteLine("        属性名:"+p.AttributeName);

WriteLine("        属性值:"+p.AttributeValue);

}

}

WriteLine("    ----------------");

}

#>

类成员:

表键信息:

<# foreach(var k in host.ClassProperty.FieldKeyPropertys)

{

WriteLine(" 键名:"+k.KeyName);

WriteLine(" 键类型:"+k.KeyType);

WriteLine(" 字段:"+k.KeyFieldName);

WriteLine(" 字段别名:"+k.KeyFieldOtherName);

if(k.KeyType==KeyType.FOREIGN_KEY)

{

WriteLine(" 约束名:"+k.ConstraintName);

WriteLine(" 约束表名:"+k.ConstraintTable);

WriteLine(" 约束表别名:"+k.ConstraintTableOtherName);

WriteLine(" 约束字段:"+k.ConstraintFields);

WriteLine(" 约束字段别名:"+k.ConstraintFieldsOtherName);

}

WriteLine("----------------");

}

#>

关联的类信息:

<# foreach(RelationClass c in host.ClassProperty.RelationClasss)

{

WriteLine(" 关联类名:"+c.ClassProperty.ClassName);

WriteLine(" 关联名称:"+c.RelationName);

WriteLine(" 关联类型:"+c.TableRelationType);

WriteLine(" UML关联类型:"+c.UmlRelationType);

WriteLine(" IsConnectionLineStart:"+c.IsConnectionLineStart);

WriteLine(" IsConnectionLineEnd:"+c.IsConnectionLineEnd);

foreach(var f in c.RelationFields)

{

WriteLine(" 关联字段:"+f[0]+""+"="+f[1]);

}

WriteLine(" 多重性:"+c.Multiplicity[0]+","+c.Multiplicity[1]);

WriteLine(    "----------------");

}

#>

讲解

<#@ template language="C#" HostSpecific="True" #>

<#

NetUmlTemplateCodeHost host = (NetUmlTemplateCodeHost)(Host);

#>

这段代码是必须的,它申明模板是采用哪种语言。在模板里可以完全访问NetUmlTemplateCodeHost
类里面的信息,这个类里面有个属性ClassProperty,这个属性包括模型中一个类的所有信息。

<#  #>
所有语法代码都在这个符号里写

host.ClassProperty.Fields中Fields属性是个集合,它包括所有字段信息

下面是循环一个类中所有字段

<# foreach(var f in host.ClassProperty.Fields)

{

}

#>

DataUml Design 教程5-代码模板介绍(甚于T4模板技术),布布扣,bubuko.com

时间: 05-24

DataUml Design 教程5-代码模板介绍(甚于T4模板技术)的相关文章

DataUml Design 教程7 - 数据库生成模型

DataUml Design支持数据库生成模型,并支持外键关系,能够根据外键自动生成类与类之间的关系. 目前DataUML Design支持MS Server.MY SQL.Oracle和Access数据库,其它数据库待续. DataUml Design支持数据库表生成类图,支持浏览数据库对象功能. 一.浏览数据库对象 1.选择要查看的数据库对象,鼠标右键,点击"连接"菜单.如下图7-1 图7-1 连接成功之后,加载数据库中所有表,如下图7-2 图7-2 2.再选择数据库节点对象,鼠标

DataUml Design 教程1-初识

DataUml Design 是面向开发人员使用的一个永久免费的软件,提高软件的开发效率和代码的规范度.它主要包括三大功能,数据模型.代码生成和UML建模,数据模型功能类似于PowerDesigner软件,代码生成类似于动软的代码生成器. 1.什么是DataUml Design DataUml Design是采用WPF开发的一款软件,该软件功能包括实体类建模.数据库设计.模型与数据库同步.数据库与模型同步.代码生成.文档生成.数据库生成实体模型等功能.以往的软件修改模型之后还得修改数据表结构,需

DataUml Design 教程6-DataUML Design 1.1版本正式发布(支持PD数据模型)

从DataUML Design正式发布到现在有两个月了,由于最近比较忙,到现在才发布1.1版本.以后本人会一直坚持不断完善DataUML Design软件,希望广大程序猿们多多支持. 一.1.1版本新增和改进内容如下 1.支持数据模型元数据导出Word.Excel.PDF文档功能; 2.支持MY SQL.Access数据库; 3.支持加载PowerDesigner数据模型文件; 4.增加数据模型下添加数据包功能; 5.改进新建数据模型时绑定数据库类型功能; 二.生成文档功能 1.打开模型文件如下

DataUml Design 教程2-实体建模

DataUml Design (下载)实体建模基于UML类图标准来设计,支持一对一.一对多.多对多关联.模型与开发语言和数据库绑定. 1.新建数据模型 1).选择"数据模型" 节点,点击鼠标右键,在菜单中点击"新建文件夹",在"数据模型"节点下会增加个"文件夹"的子节点.如图2-1. 图 2-1 2).选中新增加的"文件夹"节点,点击鼠标右键,在出现的菜单中点击"重命名",可以给节点重新

DataUml Design 教程4-代码生成

Background Some concepts in Mathematics and Computer Science are simple in one or two dimensions but become more complex when extended to arbitrary dimensions. Consider solving differential equations in several dimensions and analyzing the topology o

DataUml Design 教程3-模型与数据库同步

上一节我们已经建立好了数据模型,那么怎么让数据模型和数据库进行同步呢?模型同步到数据库非常简单,只需要模型绑定到数据库即可.DataUml Design目前支持和Oracle与MS Server数据库进行同步. 模型绑定到数据库这里就不再讲解了,不懂的请看上一节内容. 1.同步数据表(模型同步到数据库) 同步原则:①先同步主表,后同步子表.②数据库中表不存在则创建新表,表存在则修改表. 这里我们同步顺序为:供应商信息->采购订单->采购明细 1).选择"供应商信息"单击右键

DataUml Design 介绍9 - DataUML 1.3版本功能(查询分析器功能等)

DataUML 1.3 (下载)主要更新内容如下: 1.增加查询分析器功能: 2.增加打开历史文件记录功能: 3.修改查询对象功能: 4.增加显示对象长度功能: 5.增加配置显示表字段功能: 6.增加快速定位对象功能: 一.查询分析器功能 支持多种数据库的查询,能够执行SQL语句进行查询数据和操作数据.如下图: 1.点击"打开"可以打开一个SQL文件: 2.点击"新建查询"按钮新建一个查询分析器,可以选择数据源进行查询数据: 3.点击"执行"可以

DataUml Design 课程6-DataUML Design 1.1版本号正式宣布(支持PD数据模型)

从DataUML Design正式宣布到现在两个月,因为最近忙,出版到现在为止1.1版本号.稍后我们将始终坚持以良好DataUML Design软件,我希望程序员有很多支持. 一.1.1新的和改进的版本的内容,如以下 1.支持数据模型元数据导出Word.Excel.PDF文档功能; 2.支持MY SQL.Access数据库; 3.支持载入PowerDesigner数据模型文件; 4.添加数据模型下加入数据包功能; 5.改进新建数据模型时绑定数据库类型功能; 二.生成文档功能 1.打开模型文件例如

Struts2.x教程(一) Struts2介绍

一.Struts2是什么 Struts2是在WebWork2基础发展而来的.和Struts1一样, Struts2也是基于MVC的web层框架. 那么既然有了Struts1,为何还要Struts2? Struts2和Struts1虽然都是基于MVC的Web框架,但是它们的实现机制完全不同. Struts1是基于Servlet的实现,并且Struts1的API过分依赖容器,导致了Action开发.测试都非常繁琐,而Struts2是基于过滤器的实现,API不再依赖容器,测试过程中不必再模拟Web容器