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

<%-- 基本设置 --%>
<%@ 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 %>
{
    /// 
    /// <%=ClassDescription %>
    /// 
    public class <%=SourceTable.Name %>
    {            
        <%foreach(var item in SourceTable.Columns){ %>
        <%="#region "+item.Name %>
        <%="/// "%>
        <%="/// "+item.Description %>
        <%="/// "%>
        <%=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
{
    /// 
    /// 学生表
    /// 
    public class Student
    {            
        #region StuNo
        /// 
        /// 学号
        /// 
        public string StuNo
        {
            set;
            get;
        }
        #endregion

        #region Name
        /// 
        /// 姓名
        /// 
        public string Name
        {
            set;
            get;
        }
        #endregion

        #region ClassId
        /// 
        /// 班级编号
        /// 
        public string ClassId
        {
            set;
            get;
        }
        #endregion

        #region Sex
        /// 
        /// 性别
        /// 
        public bool Sex
        {
            set;
            get;
        }
        #endregion

        #region Birthday
        /// 
        /// 出生日期
        /// 
        public DateTime Birthday
        {
            set;
            get;
        }
        #endregion

    }
}




你可能感兴趣的:(CodeSmith----02.生成数据库表对应实体)