首先在使用之前,先要下载 OracleNativeSchemaProvider
之后需要需要在数据库建一个表,如果不建这个表的话,在使用Description的属性时会报错
create table codesmith_extended_properties ( container_object_owner varchar2(50) not null, object_name varchar2(61) not null, codesmith_schema_type varchar2(200) not null, property_name varchar2(75) not null, property_value varchar2(4000) not null, clr_type varchar2(50) not null )
下面是模板,根据不同需求编写,这个是最基础的实体生成,当然,没有100%不用修改的模板
<%@ CodeTemplate Language="C#" TargetLanguage="C#" ResponseEncoding="UTF-8" Description="Create Normal Object" %> <%@ Property Name="DeveloperName" Type="String" Category="Context" Default="" Description="Creator" %> <%@ Property Name="NameSpace" Type="String" Category="Context" Default="" Description="Namespace" %> <%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="Table which will be Build" %> <%@ Assembly Name="SchemaExplorer" %> <%@ Assembly Name="System.Data" %> <%@ Import Namespace="SchemaExplorer" %> <%@ Import Namespace="System.Data" %> using System; using System.Collections.Generic; using System.Text; namespace <%= NameSpace %> { /// <summary> /// 创 建 人: <%= DeveloperName %> /// 创建日期: <%= DateTime.Now.Date.ToString("yyyy-MM-dd")%> /// 文件描述: <%= SourceTable.Name %> 表对应实体 /// </summary> public class <%= SourceTable.Name %> : NeuObject { #region 私有变量 <% foreach (ColumnSchema column in SourceTable.Columns) { %> /// <summary> /// <%= column.Description.ToString()%> /// </summary> private <%= column.DataType %> m_<%= column.Name %>; <% } %> #endregion #region 属性 <% foreach (ColumnSchema column in SourceTable.Columns) { %> /// <summary> /// <%= column.Description.ToString()%> /// </summary> public <%= column.DataType%> <%= column.Name %> { get{ return m_<%= column.Name%>; } set{ m_<%= column.Name%> = value; } } <% } %> #endregion #region 克隆 /// <summary> /// 克隆方法 /// </summary> public new <%= SourceTable.Name %> Clone() { <%= SourceTable.Name %> obj = base.Clone() as <%= SourceTable.Name %>; return obj; } #endregion } }
基本上所有的实体都会通过表来生成。
很久没写模板了,貌似现在的公司,也不强制要求固定的格式,呵呵,尽兴吧。~
陆续会总结一些现在比较常用的form的模板,能生成还是生成吧,我宁愿改,也不想当代码工人。
顺带一句,我的大段注释,一般都是用CodeSmith的模板生成的,今天在园子里看到一篇VS的使用技巧,才知道,原来注释是可以直接拖进工具栏,以备经常使用的,很好,很强大。