本站首页    管理页面    写新日志    退出


«may 2026»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
================

注会练习软件
http://www.cpasoft.com.cn
我的注会软件官网

http://blog.163.com/abc7105@126/

 

 


哈哈,热爱快“过气”的DELPHI


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:注册会计师(注会)练习软件
日志总数:398
评论数量:116
留言数量:27
访问次数:3304021
建立时间:2005年6月6日




一个codesmith的实体模板
软件技术

吕向阳 发表于 2006/9/7 17:09:24

一个codesmith的实体模板   一个codesmith的实体模板 <%--引用%><%@ CodeTemplate Language="C#"  TargetLanguage="Text" Description="Template description here." %><%@ Assembly Name="SchemaExplorer" %><%@ Import Namespace="SchemaExplorer" %><%@ Assembly Name="CodeTemplateRule" %><%@ Import Namespace="CodeTemplateRule" %><%--模板属性%><%@ Property Name="DataBase" Type="SchemaExplorer.DatabaseSchema" Category="Context" Description="数据库连接." %><%@ Property Name="TableName" Type="System.String" Default="" Optional="False" Category="" Description="表名" %><%@ Property Name="NameSpace" Type="System.String" Default="Company.Product.Module" Optional="False" Category="" Description="命名空间" %><%@ Property Name="Author" Type="System.String" Default="Author" Optional="False" Category="" Description="作者" %><%@ Property Name="Description" Type="System.String" Default="实体类" Optional="False" Category="" Description="该类的描述" %> <script runat="template"> CodeTemplateRule rule=new CodeTemplateRule();</script> using System;namespace <%= NameSpace %>{    /// <summary>    /// 作用:<%= Description %>    /// 作者:<%= Author %>    /// 日期:<%= DateTime.Now.ToString() %>    ///</summary>    public class <%= rule.GetTableName(TableName) %>Entity    {        /// <summary>        /// 构造函数        ///</summary>        public <%= rule.GetTableName(TableName) %>Entity()        {        }      <%   //局部变量   ColumnSchemaCollection columns=rule.GetColumnCollection(DataBase,TableName);   for(int i=0;i<columns.Count;i++)   {    Response.Write("        //"+columns[i].Description+"\r\n");    Response.Write("        private "+rule.GetType(columns[i])+" m_"+columns[i].Name+";\r\n");   }  %>      <%   //属性   for(int i=0;i<columns.Count;i++)   {  %>   ///<summary>        ///<%= columns[i].Description %>        ///</summary>        public <%= rule.GetType(columns[i]) %> <%= columns[i].Name %>        {            get            {                return m_<%= columns[i].Name %>;            }            set            {                m_<%= columns[i].Name %>=value;            }        }  <%      }  %>   }}=====================================================其中要用到的dll文件内容,编译后放到\Program Files\CodeSmith\v3.0\AddIns文件夹下: 500)this.width=500'>using System;500)this.width=500'>using System.Text;500)this.width=500'>using System.ComponentModel;500)this.width=500'>using CodeSmith.Engine;500)this.width=500'>using System.Data;500)this.width=500'>using SchemaExplorer;500)this.width=500'>500)this.width=500'>namespace CodeTemplateRule500)this.width=500'>500)this.width=500'>500)this.width=500'>{500)this.width=500'>500)this.width=500'>    /**//// <summary>500)this.width=500'>    /// CodeSmith自动生成代码所用到的函数500)this.width=500'>    /// </summary>500)this.width=500'>    public class CodeTemplateRule500)this.width=500'>500)this.width=500'>    500)this.width=500'>{500)this.width=500'>500)this.width=500'>        /**//// <summary>500)this.width=500'>        /// 获取所有列的集合500)this.width=500'>        /// </summary>500)this.width=500'>        /// <param name="dataBase">数据库Schema</param>500)this.width=500'>        /// <param name="tableName">表名</param>500)this.width=500'>        /// <returns>Columns Schema</returns>500)this.width=500'>        public ColumnSchemaCollection GetColumnCollection(DatabaseSchema dataBase,string tableName)500)this.width=500'>500)this.width=500'>        500)this.width=500'>{500)this.width=500'>            TableSchemaCollection tables = new TableSchemaCollection(dataBase.Tables);500)this.width=500'>            ColumnSchemaCollection columns=null;500)this.width=500'>            for(int i=0;i<tables.Count;i++)500)this.width=500'>500)this.width=500'>            500)this.width=500'>{500)this.width=500'>                if(tables[i].Name.ToUpper()==tableName.ToUpper())500)this.width=500'>500)this.width=500'>                500)this.width=500'>{500)this.width=500'>                    TableSchema ts=tables[i];500)this.width=500'>                    columns=new ColumnSchemaCollection(ts.Columns);500)this.width=500'>                }500)this.width=500'>            }500)this.width=500'>            return columns;500)this.width=500'>        }500)this.width=500'>        500)this.width=500'>500)this.width=500'>        /**//// <summary>500)this.width=500'>        /// 获取处理后的表名 例如:ORG_Person,返回Person500)this.width=500'>        /// </summary>500)this.width=500'>        /// <param name="tableName">表名</param>500)this.width=500'>        /// <returns>返回处理后的表名</returns>500)this.width=500'>        public string GetTableName(string tableName)500)this.width=500'>500)this.width=500'>        500)this.width=500'>{500)this.width=500'>            int i=tableName.IndexOf("_");500)this.width=500'>            return tableName.Substring(i+1,tableName.Length-(i+1));500)this.width=500'>        }500)this.width=500'>        500)this.width=500'>500)this.width=500'>        /**//// <summary>500)this.width=500'>        /// 获取唯一号的变量名,第一个字母小写500)this.width=500'>        /// </summary>500)this.width=500'>        /// <param name="guidColumn">唯一号列名</param>500)this.width=500'>        /// <returns>唯一号的变量名</returns>500)this.width=500'>        public string GetGuidColumnVar(string guidColumn)500)this.width=500'>500)this.width=500'>        500)this.width=500'>{500)this.width=500'>            string guid;500)this.width=500'>            guid=guidColumn.Substring(0,1).ToLower()+guidColumn.Substring(1,guidColumn.Length-1);500)this.width=500'>            return guid;    500)this.width=500'>        }        500)this.width=500'>        500)this.width=500'>500)this.width=500'>        /**//// <summary>500)this.width=500'>        /// 获取c#变量类型500)this.width=500'>        /// </summary>500)this.width=500'>        /// <param name="column">列</param>500)this.width=500'>        /// <returns>c#变量类型</returns>500)this.width=500'>        public string GetType(ColumnSchema column)500)this.width=500'>500)this.width=500'>        500)this.width=500'>{500)this.width=500'>            if (column.Name.EndsWith("TypeCode")) return column.Name;500)this.width=500'>            500)this.width=500'>            switch (column.DataType)500)this.width=500'>500)this.width=500'>            500)this.width=500'>{500)this.width=500'>                case DbType.AnsiString: return "string";500)this.width=500'>                case DbType.AnsiStringFixedLength: return "string";500)this.width=500'>                case DbType.Binary: return "byte[]";500)this.width=500'>                case DbType.Boolean: return "bool";500)this.width=500'>                case DbType.Byte: return "int";500)this.width=500'>                case DbType.Currency: return "decimal";500)this.width=500'>                case DbType.Date: return "DateTime";500)this.width=500'>                case DbType.DateTime: return "DateTime";500)this.width=500'>                case DbType.Decimal: return "decimal";500)this.width=500'>                case DbType.Double: return "double";500)this.width=500'>                case DbType.Guid: return "Guid";500)this.width=500'>                case DbType.Int16: return "short";500)this.width=500'>                case DbType.Int32: return "int";500)this.width=500'>                case DbType.Int64: return "long";500)this.width=500'>                case DbType.Object: return "object";500)this.width=500'>                case DbType.SByte: return "sbyte";500)this.width=500'>                


阅读全文(2653) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.852 second(s), page refreshed 144829748 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号