★★★★★FireGrass★★★★★

※※※※※ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞジ
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
今天开始学习codesmith,到本来是想找个想hibernate一样既方便又快揭的工具,找来找去相关的好的大概有三个:CodeSmith(跟orm无关),NHibernate(不方便),MyGeneration(也不爽).看来要想达到hibernate的效果必须结合几个工具一起使用,今天刚好发现一篇文章(就是下面的),虽然少但是看到了一个方向.

如何使用CodeSmith协助NHibernate实体类与.hbm.xml文件自动生成
    今天重装机后,重装了CodeSmith,结果忘记了如何让CodeSmith协助NHibernate,摸索了一会才搞定,现记录下来作以后参考。
(1)CodeSmith使用 V2.5
(2)将
NHibernateTemplate整个文件夹放到C:\Program Files\CodeSmith\v2.5\Samples下。
(3)提供对Oracle的支持。用VS2003打开
OracleNativeSchemaProvider项目,项目需要引用SchemaExplorer.dll,可在C:\Program Files\CodeSmith\v2.5下找到该文件。重新编译后,将编译生成的SchemaExplorer.OracleNativeSchemaProvider.dll和SchemaExplorer.OracleNativeSchemaProvider.dll.config文件拷贝C:\Program Files\CodeSmith\v2.5下,重新打开CodeSmith可。
CodeSmith 4.0的位置就不是这样的了
(4)NHibernate配置示例:
    <configSections>
         
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />            
    
</configSections>     
    <nhibernate>
        
<add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
        
<add key="hibernate.connection.driver_class" value="NHibernate.Driver.OracleClientDriver" />
        
<add key="hibernate.connection.connection_string" value="user id=XTGL;data source=ORCL;password=GSGL" />
        
<add key="hibernate.connection.isolation" value="ReadCommitted"/>
        
<add key="hibernate.dialect" value="NHibernate.Dialect.Oracle9Dialect" />
    
</nhibernate>

(5)使用SessionQuicker操作NHibernate数据层。

汉字不支持的解决办法:
打开CodeSmith Studio设置CodeSmith tools->option->enable unicode support
然后在模板中: 加上ResponseEncoding="UTF-8" 如下:
<%@ CodeTemplate Language="C#" ResponseEncoding="UTF-8" %>