CodeSmith----02.生成数据库表对应实体

来源:互联网 发布:数据采集卡安装 编辑:程序博客网 时间:2024/04/30 00:18
<%-- 基本设置 --%><%@ Template Language="C#" TargetLanguage="Text" %><%-- 引用程序集 --%><%@ Assembly Name="SchemaExplorer" %><%@ Import Namespace="SchemaExplorer" %><%-- 变量 --%><%@ Property Name="NameSpace" Type="System.String" Description="命名空间" %><%@ Property Name="ClassDescription" Type="System.String" Description="类描述信息" %><%@ Property Name="Author" Type="System.String" Default="Jun" Description="作者" %><%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Description="要访问的表名" %><%-- 模板内容 --%>/****************************************** 文件名: <%=SourceTable %>.cs** 作者: <%=Author %>** 创建时间: <%= DateTime.Now.ToLocalTime() %>****************************************/using System; namespace <%=NameSpace %>{    /// <summary>    /// <%=ClassDescription %>    /// </summary>    public class <%=SourceTable.Name %>    {                    <%foreach(var item in SourceTable.Columns){ %>        <%="#region "+item.Name %>        <%="/// <summary>"%>        <%="/// "+item.Description %>        <%="/// </summary>"%>        <%=GetPropertyStr(item)%>        <%="{" %>            <%="set;" %>            <%="get;" %>        <%="}" %>        <%="#endregion\r\n" %>        <%} %>           }}<%-- 内部函数 --%><script runat="template">    public string GetPropertyStr(ColumnSchema column)    {                switch(column.SystemType.ToString().Substring(7)){            case "Int32":            {                return "public int"+" "+column.Name;                break;            }            case "Boolean":            {                return "public bool"+" "+column.Name;                break;            }            case "DateTime":            {                return "public DateTime"+" "+column.Name;                break;            }            default :            {                return "public "+column.SystemType.ToString().Substring(7).ToLower() +" "+column.Name;            }        }    }</script>
生成:
/****************************************** 文件名: dbo.Student.cs** 作者: Jun** 创建时间: 2013/8/11 11:14:33****************************************/using System; namespace Jun.Dream.Test.EntityModel{    /// <summary>    /// 学生表    /// </summary>    public class Student    {                    #region StuNo        /// <summary>        /// 学号        /// </summary>        public string StuNo        {            set;            get;        }        #endregion        #region Name        /// <summary>        /// 姓名        /// </summary>        public string Name        {            set;            get;        }        #endregion        #region ClassId        /// <summary>        /// 班级编号        /// </summary>        public string ClassId        {            set;            get;        }        #endregion        #region Sex        /// <summary>        /// 性别        /// </summary>        public bool Sex        {            set;            get;        }        #endregion        #region Birthday        /// <summary>        /// 出生日期        /// </summary>        public DateTime Birthday        {            set;            get;        }        #endregion    }}