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 %>
{
    /// <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

    }
}




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值