动软代码:
public <#= returnValue #> Add(<#= ModelSpace #> model)
C#代码:
public int Add(BW_MinPressure.Model.m_Group model)
动软代码:
<# foreach (ColumnInfo c in host.Fieldlist)
{ #>private <#= CodeCommon.DbTypeToCS(c.TypeName) #> _<#= c.ColumnName.ToString().ToLower() #>;
<# } #>
C#代码:
private int _id;
private string _vc_name;
private string _vc_memo;
private int _i_flag;
动软代码:
<#if (identityKey!=null) {#>strSql.Append(";select @@IDENTITY");<#}#>
C#代码:
strSql.Append(";select @@IDENTITY");
<#=identityKey.ColumnName#> 标示列名
<#= host.Keys[0].ColumnName #> 主键列名
动软代码:
/// <summary>
/// 是否存在该记录
/// </summary>
public bool Exists(<#= CodeCommon.GetInParameter(host.Keys, false) #>)
{
return dal.Exists(<#= CodeCommon.GetFieldstrlist(host.Keys, false)#>);
}
C#代码:
/// <summary>
/// 是否存在该记录
/// </summary>
public bool Exists(int ID)
{
return dal.Exists(ID);
}
目录
动软.Net代码生成器 是一款为.Net程序员设计的全功能自动代码生成器,也是一个智能化软件开发平台,它可以生成基于面向对象的思想和三层架构设计的代码,结合了软件开发中经典的思想和设计模式,融入了工厂模式,反射机制等等一些思想。主要实现在对应数据库中表的基类代码的自动生成,包括生成属性、添加、修改、删除、查询、存在性、Model类构造等基础代码片断,支持不同架构代码生成,使程序员可以节省大量机械录入的时间和重复劳动,而将精力集中于核心业务逻辑的开发。新版本中除了程序集组件模板,也同样支持用户自定义文本模板,像写ASPX代码一样写模板,一键代码生成,更方便,更灵活。
动软让软件开发变得轻松而快乐!让企业不断提升开发效率,同样的时间创造出更大的价值。
1. 系统要求:
Microsoft Windows2000/XP/2003/7 或者更高。机器必须安装.NET Framework v2.0。
2. 官方下载地址:http://www.maticsoft.com/download.aspx
3. 下载解压后安装包有如下文件:
Codematic2.msi 是动软.NET代码生成器的安装文件。
Builder文件夹是代码生成插件的源码,动软.NET代码生成器支持可扩展的代码生成插件,用户可以定制自己的代码生成的插件,根据接口开发自己的代码生成方式,按自己的需求进行代码生成。
Codematic_Data.MDF和Codematic_Log.LDF 是通过动软新建项目中所带管理模块所需要的数据库文件。后台管理员默认登录用户名:admin 密码:1
4. 双击Codematic2.msi 进行直接安装即可。
安装动软时,如果用户机器360弹出警告,那仅仅是个签名认证提示,并非木马,选择“继续安装”,然后点击“确定”即可。
动软郑重声明: 动软.NET代码生成器,绝无插件木马,纯绿色软件。请放心安装。
5. 安装成功后,在开始-菜单和桌面上会有动软.NET代码生成器的图标。
1. 在左侧【数据库视图】,选中表,右键菜单【模板代码生成】
2. 然后,出现单表的代码生成器界面,我们设置自己需要更改的信息
备注:代码还有一些生成规则,是在菜单【工具】-【选项】-【代码生成设置】中进行设置。
3. 然后,点击工具栏【生成代码】或者【生成代码】按钮,即可生成该类的代码:
生成的代码,可以直接复制到项目文件中,也可以右键保存成CS文件。通过窗体下面的Tab按钮可以来回切换设计视图和代码。
4. 设置模板目录
5. 模板保存
6.
1. 选中数据库或者表,然后单击右键菜单【模板代码批量生成】
2. 出现的窗口和新建项目基本相似,只是多了一个选中架构的选项:
3. 选则要生成的表,然后点击【导出】。
4. 在生成的文件夹中,我们可以看到:
批量生成代码只生成业务表的代码,不再有解决方案文件和项目文件,以及其它类库等。我们可以将生成的这些文件直接拖到现有的解决方案中即可
打开菜单【工具】-【选项】-【代码生成设置】
这些配置保存后,在生成代码的时候将按照这个规则进行生成。
代码生成的规则设置范围还在不断增加中。
另外,不同数据库类型的数据类型各有不同,这里提供了字段类型和C#中的类型建立映射关系,生成代码时将按映射关系来生成代码字段属性的类型。
模板的大体分为5块内容:模板指令声明,代码语句块,表达式块,类功能控制块,文本块输出。下面我们分别来介绍一下这5块内容的语法和使用说明。
和ASP.NET页面的指令一样,它们出现在文件头,通过<#@…#>表示。其中<#@
template …#>指令是必须的,用于定义模板的基本属性。
<#@ template [language="VB"] [hostspecific="true"] [debug="true"] [inherits="templateBaseClass"] [culture="code"] [compilerOptions="options"] #>
例如
<#@ template language="C#v3.5" hostSpecific="true" debug="true" #>
Language 这里可以指定模板使用的语言。
hostSpecific="true" 表示是否使用特定的host,host里面包含了模板使用的各种对象。
注意:
所有属性值必须用双引号都括起来。如果值本身包含引号,则必须使用 \ 字符对这些引号进行转义。 指令通常是模板文件或包含的文件中的第一个元素。
<#@ parameter type="Full.TypeName" name="ParameterName" #>
<#@ output extension=".fileNameExtension" encoding="encoding" #>
output extension=".cs" 指定生成文件的扩展名。
encoding="encoding" 指定生成文件的编码。
<#@ assembly name="System.Data" #>
用于添加程序集引用,如果要使用第三方程序集,那么最好在项目中添加引用。
注:您应使用绝对路径的名称,或者路径名称中使用标准的宏的名称。
例如: <#@ assembly name="$(SolutionDir)library\MyAssembly.dll" #>
<#@ import namespace="System.Data" #>
导入要使用的命名空间,注意:这里的命名空间必须要在前面指定的程序集里面找得到的,比如我指定命名空间"System.Data","System.Data.Common",这些在程序集System.Data中都有的
<#@ include file="test.tt" #> 导入模板,类似Html的include用法
include 指令插入其他模板文件的文本。
例如,下面的指令插入 test.txt 的内容。 <#@ include file="c:\test.txt" #>
在处理时,被包含内容就像是包含文本模板的组成部分一样。 不过,即使 include 指令后跟普通文本块和标准控制块,也可以包含编写有类功能块 <#+...#> 的文件
在模板文件中,可以混合使用任意数量的文本块和标准控制块。中间是一段通过相应编程语言编写的程序调用,我们可以通过代码语句快控制文本转化的流程。
注意:不能在控制块中嵌套控制块。
<#@ output extension=".txt" #>
<#
for(int i = 0; i < 4; i++)
{
#>
Hello!
<#
}
#>
表达式控制块计算表达式并将其转换为字符串。 该字符串将插入到输出文件中。
例如: <#= 2 + 3 #>
表达式可以包含作用域中的任何变量。 例如,下面的块输出数字行:
<#@ output extension=".txt" #>
<#
for(int i = 0; i < 4; i++)
{
#>
This is hello number <#= i+1 #>: Hello!
<#
}
#>
如果文本转化需要一些比较复杂的逻辑,我们需要写在一个单独的辅助方法中,甚至是定义一些单独的类,我们就是将它们定义在类特性块中。类功能控制块定义属性、方法或不应包含在主转换中的所有其他代码。 类功能块常用于编写帮助器函数。 通常,类功能块位于单独的文件中,这样它们可以包含在多个文本模板中。 类功能控制块以 <#+
... #> 符号分隔。
例如,下面的模板文件声明并使用一个方法:
<#@ output extension=".txt" #>
Squares:
<#
for(int i = 0; i < 4; i++)
{
#>
The square of <#= i #> is <#= Square(i+1) #>.
<#
}
#>
That is the end of the list.
<#+ // Start of class feature block
private int Square(int i)
{
return i*i;
}
#>
类功能必须编写在文件末尾。不过,即使 include指令后跟标准块和文本,也可以 <#@include #> 包含类功能的文件。例如下面代码则会报错:
List of Squares:
<#
for(int i = 0; i < 4; i++)
{ WriteSquareLine(i); }
#>