CodeMatic动软自动生成Nhibernate

      前两天调查了下自动生成工具MyGenerationcodesmith前一个版本已经不更新了后面一个太高级生成的代码包含了太多东西,没整明白。不过生成的xmlmapping很强大。所以干脆整合一下codesmith和动软的pojo。现版本的动态默认带了nhibernate的模版

表设计的时候最好不要带下划线之类的

      一、配置下要用的namespace和表名大小写


      二、因为我用的是mysql所以表名默认在windows环境下是小写,不符合编码的规范,所以小改了下模版把首字母大写其它小写参照

http://www.cnblogs.com/freshman0216/archive/2010/10/02/1840750.html

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

//Nhibernate Code Generation Template 1.0
//author:MythXin
//blog:www.cnblogs.com/MythXin
//Entity Code Generation Template
namespace <#= host.NameSpace #>.Entity<# if( host.Folder.Length > 0) {#>.<#= host.Folder #><# } #>
{
	<# if( host.TableDescription.Length > 0) {#>
 	//<#= host.TableDescription #>
	<# } #>
	[Serializable]
	public class <#= host.GetModelClass(host.TableName.Substring(0, 1).ToUpper() + host.TableName.Substring(1).ToLower()) #> : EntityBase
	{
	
      	<# foreach (ColumnInfo c in host.Fieldlist)
		{ #>/// <summary>
		/// <#= string.IsNullOrEmpty(c.Description)  ? c.ColumnName : c.Description #>
        /// </summary>
        public virtual <#= CodeCommon.DbTypeToCS(c.TypeName) #><# if(c.Nullable) {  #><#if(CodeCommon.isValueType(CodeCommon.DbTypeToCS(c.TypeName
))){ #>?<# }#><# }#> <#= c.ColumnName.Substring(0, 1).ToUpper() + c.ColumnName.Substring(1).ToLower() #>
        {
            get; 
            set; 
        }        
		<# } #>
   
	}
}
   c#的substring带2个参数的方法和java不太一样,
java和c#中的substring
如果只有一个参数,意思是一样,取该索引之后的全部字符

如果有2个参数。Java 的substring第二个参数表示索引号,实际取值是索引号的前一位; C# 的Substring方法第二个参数表示取子字符串的长度

host.GetModelClass()方法是动软命名规则里面的设置。比如命名规则设置首字母大写那生成的时候就会首字母大写,但是不满足驼峰形类名所以又修改了下:如果前面没有配置命名规则则把下面的host.GetModelClass()去掉自己ToUpper就可以了

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

//Nhibernate Code Generation Template 1.0

namespace <#= host.NameSpace #>.Entity<# if( host.Folder.Length > 0) {#>.<#= host.Folder #><# } #>
{
    [Serializable]
    public class <#= host.GetModelClass(host.TableName.Substring(0, 1).ToUpper())
    #><# int index=host.TableName.IndexOf("_");
    #><# if(index!=-1){ 
             if(host.TableName.Length>(index+1)){ 
             #><#=host.TableName.Substring(1,index-1)+host.TableName.Substring(index+1,1).ToUpper()+host.TableName.Substring(index+2)
    #><#     }else {
             }
       }else { 
    #><#=host.TableName.Substring(1).ToLower() #><# }  #>  : EntityBase
    {
    
          <# foreach (ColumnInfo c in host.Fieldlist)
        { #>/// <summary>
        /// <#= string.IsNullOrEmpty(c.Description)  ? c.ColumnName : c.Description #>
        /// </summary>
        public virtual <#= CodeCommon.DbTypeToCS(c.TypeName) #><# if(c.Nullable) {  #><#if(CodeCommon.isValueType(CodeCommon.DbTypeToCS(c.TypeName
))){ #>?<# }#><# }#> <#= c.ColumnName.Substring(0, 1).ToUpper() + c.ColumnName.Substring(1) #>
        {
            get; 
            set; 
        }        
        <# } #>
   
    }
}


三、用codesmith生成的xml配置文件要注意,默认是会忽略表中字段名的前缀的类似 表名product 字段名为productid   生成的xml文件中的属性就会变成 id

还有一个问题就是生成的文件名还是小写的。。。可能要改动软的生成文件的地方




     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<br/>软件名称:动软.Net代码自动生成器(Codematic)<br/>软件版本:1.9.7.2 (2006.4.14)<br/>软件容量:2.65 MB<br/>软件分类:开发工具<br/>软件性质:国产软件 / 简体中文 / 免费软件<br/>应用平台:WinNT/2000/XP/2003/Longhorn/Vista<br/>界面预览:http://www.Maticsoft.com/Codematic.aspx<br/>官方网站:http://www.Maticsoft.com<br/>官方论坛:http://bbs.Maticsoft.com<br/>电子信箱:l_tp@163.com<br/>下载地址:http://www.maticsoft.com/soft/Codematic.rar<br/><br/>软件简介:<br/> Codematic 是一款为 C# 数据库程序员设计的自动代码生成器,Codematic 生成的代码基于基于面向对象的思想和三层架构设计,结合了Petshop中经典的思想和设计模式,融入了工厂模式,反射机制等等一些思想。采用 Model + DAL + BLL + Web 的设计,主要实现在 C# 中对应数据库中表的基类代码的自动生成,包括生成属性、添加、修改、删除、查询、存在性、 Model 类构造等基础代码片断,使程序员可以节省大量机械录入的时间和重复劳动,而将精力集中于核心业务逻辑的开发。 <br/> Codematic 同时提供方便的数据库查询管理,SQL脚本生成,存储过程生成,数据库文档生成,Web项目文件发布,代码生成自动导出文件等多项开发工作中常用到的功能,您可以很方便地进行项目开发。 <br/><br/>详细功能说明:<br/><br/>1.自动代码生成。<br/> 可以生成三层架构的代码。如果采用类似petshop架构模式的架构,则代码生成效率很高。<br/> 它可以生成:实体Model,DAL(数据访问层),IDAL(接口层),DALFactory(类工厂),BLL(业务逻辑层),WEB层等多层的代码,可以节省大量的时间来做业务逻辑的代码,那些重复的代码就交给它去做吧,1分钟生成一个架构所有的基本代码。我感觉有了它开发项目的效率简直好轻松。<br/> (1)自动生成属性注释.<br/> (2)可以自由设定命名空间和实体类名。<br/> (3)免费提供数据库访问,页面数据校验等等基础类库及封装类库源码。自己可以对其进行修改保存满足自己的需要。<br/> (4)支持不同类型数据层的生成: 基于SQL语句,基于参数,基于存储过程。<br/> (5)支持选择不同架构代码生成:简单基本三层结构;基于工厂模式+反射机制+缓存机制的复合结构;自定义结构模版。<br/> (6)可以生成增加,显示等页面主体Html代码,和后台.cs处理代码。<br/> (7)支持对多种类型数据库生成代码:如SQLServer2000,SQLServer2005,Oracle,OleDb等。<br/><br/>2.数据库管理器。<br/> 类似SQLServer2000的管理界面,方便平常在代码编辑的时候想查看数据库的信息,并且可以很直观的查看字段类型,长度,主键,默认值等详细信息,省去了在代码和数据库管理器之间的来回切换,方便快捷。<br/> (1)支持多种类型数据库。如SQLServer2000,SQLServer2005,Oracle,OleDb等。<br/> (2)创建表脚本和存储过程及数据脚本,支持执行。<br/> (3)导出表脚本和存储过程文件。<br/> (4)表的重命名,删除操作。<br/><br/>3.查询分析器。<br/> 实现类似于SQLServer的查询分析器的功能,方便编写代码时想进行数查询。<br/> (1)实现执行选中部分SQL语句。<br/> (2)实现关键字高亮。<br/> (3)支持F5快捷键执行语句。<br/> (4)实现打开现有脚本,保存当前脚本功能。<br/> (5)实现错误检测提示功能。<br/><br/>4. 自动生成存储过程和SQL脚本。<br/> 可以根据选定的数据库和表(可多选),生成表的创建脚本,以及表数据的插入脚本,同时可以生成表的增,删,改,查等操作的存储过程脚本。支持在当前生成和导出脚本文件功能.<br/><br/>5. 自动生成数据库结构文档。<br/> 可以根据选定的数据库和表(可批量生成),可以生成字段的详细信息,包括默认值,描述等信息.生成相应的表结构文档,免去手工写文档和操作的麻烦。<br/><br/>6. Web项目文件发布。<br/> 有时候我们需要根据自己的要求,导出项目文件,VS.NET自带的复制项目功能,对一些图片或js 文件等等其他一些文件,不能自动导出,除非把这些都添加到项目里。所以,有了这个功能,对项目发布非常的方便,并且支持自己定义哪些发布哪些不发布。<br/><br/>7. 代码生成自动导出功能。<br/> 代码生成器可以选定一个表来生成代码,然后粘贴到项目里。但如果表很多,来回这么操作太麻烦,所以,这个功能可以按三层架构,自动建立文件夹,并自动生成所选的所有表的.cs代码文件,只需要添加到项目里就可以了。<br/><br/>8.其他功能:<br/> (1) C#ToVB.NET代码转换器.<br/> (2) 实现了热键呼出。可以自己设定热键.当你点窗口的[X]关闭程序时,程序会自动隐藏运行在任务栏,通过热键可以快速呼出窗口。<br/><br/><br/>**************************************************************************************<br/><br/>同时,发布基于该模式的一套示例项目系统源码,包括完整UI。<br/><br/>下载地址:http://www.maticsoft.com/soft/Codematicdemo.rar<br/><br/>使用该架构与动软.NET代码自动生成器结合开发项目,可以大大节省开发时间,提高效率。<br/>让开发变得轻松,使工作变得快乐!<br/><br/>****************************************************************************************<br/><br/>用智慧改变世界,用创造改变生活。其实,工作也很快乐!— 李天平<br/><br/>****************************************************************************************<br/><br/><br/>
动软.Net代码生成器Codematic 是一款为C#程序员设计的自动代码生成器,Codematic 生成的代码基于面向对象的思想和三层架构设计,结合了Petshop中经典的思想和设计模式,融入了工厂模式,反射机制等等一些思想。采用 Model+DAL +BLL+Web 的设计,包括生成属性、添加、修改、删除、查询、存在性、Model类构造等基础代码片断,支持不同3种架构代码生成,使程序员可以节省大量机械录入的时 间和重复劳动,而将精力集中于核心业务逻辑的开发。 Codematic 同时提供方便的多类型数据库管理,查询分析器,SQL脚本生成,存储过程生成,数据库文档生成,Web项目发布,代码批量自动输出等多项开发工作中常用到的功能,您可以很方便轻松地进行项目开发。 详细功能说明 1.自动生成代码 可以生成3种不同架构的代码,支持自动创建三层架构项目并生成代码。 它可以生成:实体Model,DAL(数据访问层),IDAL(接口层),DALFactory(类工厂),BLL(业务逻辑层),WEB层等多层的代 码,可以节省大量的时间来做业务逻辑的代码,那些重复的代码就交给它去做吧,1分钟生成一个架构所有的基本代码。我感觉有了它开发项目的效率简直轻松多 了。 2. 多类型数据库集中管理器 类似SQLServer2005的管理界面,支持SQL Server,Oracle,OleDb三种类型的数据库,方便平常在代码编辑的时候想查看数据库的信息,并且可以很直观的查看字段类型,长度,主键,默 认值等详细信息,省去了在代码和数据库管理器之间的来回切换,方便快捷。 3. 查询分析器 。 实现类似于SQLServer的查询分析器的功能,方便编写代码时想进行数查询。 4. 自动生成存储过程和SQL脚本 。可以生成存储过程,查询语句,数据插入脚本,对象定义脚本等。 5. 自动生成数据库结构的文档。 6. Web项目文件发布。 7. 代码批量生成自动导出功能。 8. 其他 : C#ToVB.NET代码转换器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值