CodeSmith使用心得

本文介绍如何利用CodeSmith 2.6版本生成实体类,包括配置模板、使用SchemaExplorer.dll进行数据库交互,并提供示例代码及运行方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出处:http://www.cnblogs.com/elevenWolf/archive/2004/12/01/71391.html

代码生成器大家都用过吧,CodeSmith我想大家也不陌生。最近就用CodeSmith生成了自己的实体类。当然你也可以用它来生成HTML页面以及文档。
二、制作模板
1.在这里我选择了C#作为模板的开发语言。
<%@ CodeTemplate Language="C#" TargetLanguage="Text" Description="Template description here." %> 
2.要生成数据库的实体类,数据连接和表名不可缺少的。在CodeSmith中通过SchemaExplorer.dll来帮你和数据库打交道。
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
在模板中导入SchemaExplorer。
然后设置一系列的需要传入的参数:
<%@ Property Name="DataBase" Type="SchemaExplorer.DatabaseSchema" Category="Context" Description="数据库连接." %>
<%@ Property Name="TableName" Type="System.String" Default="" Optional="False" Category="" Description="表名" %> 
3.CodeSmith模板脚本格式:
<script runat="template"> 
       CodeTemplateRule rule=new CodeTemplateRule();
</script>  
或者:
/// <summary> 
    /// 作用:<%= Description %> 
    /// 作者:<%= Author %> 
    /// 日期:<%= DateTime.Now.ToString() %>
///</summary>  
4.我自己写了一个dll来存放自己的函数 CodeTemplateRule.dll ,其中引用到了SchemaExplorer,举个例子:
public  ColumnSchemaCollection GetColumnCollection(DatabaseSchema dataBase, string  tableName) 
         

              TableSchemaCollection tables 
= new TableSchemaCollection(dataBase.Tables); 
              ColumnSchemaCollection columns
=null
              
for(int i=0;i<tables.Count;i++
              

                   
if(tables[i].Name.ToUpper()==tableName.ToUpper()) 
                   

                        TableSchema ts
=tables[i]; 
                        columns
=new ColumnSchemaCollection(ts.Columns); 
                   }
 
              }
 
              
return columns; 
         }
 
这段代码的含义就是取数据库中某张表所有列的集合。
三、运行
1.        用CodeSmith.exe运行模板,CodeSmith会弹出对话框来你来填写你的参数。
2.        用CodeSmithConsole.exe运行模板,参数可以放在xml文件中。例如:
<?xml version="1.0" encoding="utf-8" ?>
<codeSmith> 
       <propertySets>
              <propertySet>
                     <property name="SampleStringProperty1">string111111111</property>
                     <property name="SampleBooleanProperty1">false</property>         
              </propertySet>         
       </propertySets>
</codeSmith>
然后用命令执行:
3.        在CodeSmithStudio.exe运行模板  
总结:

代码生成器给我们编程工作带来了很大的便利,不需要做很多重复性的工作。
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值