CodeSmith生成三层代码之实体层(1)

<%@ CodeTemplate Language="C#" ResponseEncoding="UTF-8" TargetLanguage="Text" Src="" Debug="False" Description="Template description here." %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context"  Description="请选择数据表!" %>
<%@ Property Name="NameSpace" Type="System.String" Default="" Optional="False" Category="Description" Description="请输入命名空间" %>
<%@ Property Name="Author" Type="System.String" Default="Pantao" Optional="False" Category="Description" Description="About Author" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>

/*************************************************************/
/*                   CodeSmith模板生成实体类                  */
/*************************************************************/
using System;
namespace <%=NameSpace%>.Model
{
/// <summary>
    /// <%=SourceTable.Description%>
    /// </summary>
public class <%=SourceTable.Name%>
{
<% for(int i=0; i<SourceTable.Columns.Count; i++) { %>
/// <summary>
/// <%=SourceTable.Columns[i].Description%>
/// </summary>
public <%=GetSqlParameterStatement(SourceTable.Columns[i]) + " " + SourceTable.Columns[i].Name%> {get; set;}
<%}%>
}
}

<script runat="template">
public string GetSqlParameterStatement(ColumnSchema column)
{
string para = "";
if (column.Name.EndsWith("TypeCode")) 
return column.Name;
switch (column.DataType)
{
case DbType.AnsiString: 
para = "string";
break;
case DbType.AnsiStringFixedLength: 
para = "string";
break;
case DbType.Binary: 
para = "byte[]";
break;
case DbType.Boolean: 
para = "bool";
break;
case DbType.Byte: 
para = "int";
break;
case DbType.Currency: 
para = "decimal";
break;
case DbType.Date: 
para = "DateTime";
break;
case DbType.DateTime: 
para = "DateTime";
break;
case DbType.Decimal: 
para = "decimal";
break;
case DbType.Double: 
para = "double";
break;
case DbType.Guid: 
para = "Guid";
break;
case DbType.Int16: 
para = "short";
break;
case DbType.Int32: 
para = "int";
break;
case DbType.Int64:
para = "long";
break;
case DbType.Object: 
para = "object";
break;
case DbType.SByte: 
para = "sbyte";
break;
case DbType.Single: 
para = "float";
break;
case DbType.String: 
para = "string";
break;
case DbType.StringFixedLength: 
para = "string";
break;
case DbType.Time: 
para = "TimeSpan";
break;
case DbType.UInt16: 
para = "ushort";
break;
case DbType.UInt32: 
para = "uint";
break;
case DbType.UInt64: 
para = "ulong";
break;
case DbType.VarNumeric: 
para = "decimal";
break;
default: 
para = "__UNKNOWN__" + column.NativeType;
break;
}
if(para == "string")
return para;
if(column.AllowDBNull)
para = para + "?";
return para;
}
</script>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值