一个简单的CodeSmith模板,希望对初学者有用

自己写了一个简单的CodeSmith 模板,本来是自己在做开发的时候用的,现在放出来希望对广大的.net 初学者有一点点用。

 

1.  实体层(MOD)

   <%--
Name:
Author:
Description:
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="Text" ResponseEncoding="UTF-8" Description="Template description here." %>
<%@ Import Namespace="System.Data" %>
<%@ Assembly Name="System.Data" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="表对象" %>
<%@ Property Name="Author" Type="System.String" Default="创捷科技"  Category="Context" Description=""%>
<%@ Property Name="NameSpace" Type="String" Default=""  Category="Context" Description="模型层命名空间名"%>
<%@ Property Name="ModelName" Type="String" Default=""  Category="Context" Description="模块名称"%>

/*
=============================================================================
Copyright ( C ),1988-1999,StrongJet Tech . Co .,Ltd 
File name:
Author:<%=Author%>
CreatedTime:<%=DateTime.Now.ToShortDateString()%>
Description:<%=SourceTable.Name%>
============================================================================= 
*/
using System;
using System.Collections.Generic;
using System.Text;

namespace <%=NameSpace%>.<%=ModelName%>
{
 /// <summary>
 ///
 /// </summary>
 
 public class <%=SourceTable.Name%>_MOD
 {
  
  <%for(int i=0;i<SourceTable.Columns.Count;i++)%>
  <%{%>
   private <%=SourceTable.Columns[i].SystemType.Name%>  _<%=SourceTable.Columns[i].Name%>;
  <%}%>
  
  
  <%for(int i=0;i<SourceTable.Columns.Count;i++)%>
  <%{%>
  
   ///<summary>
   ///<%=SourceTable.Columns[i].Description%>
   ///<summary>
   public  <%=SourceTable.Columns[i].SystemType.Name%>  <%=SourceTable.Columns[i].Name%>
   {
    get { return this._<%=SourceTable.Columns[i].Name%>;}
    set { this._<%=SourceTable.Columns[i].Name%> = value;}
   }
  <%}%>
  
 }
 
}

2、业务逻辑层(BLL)

 

    <%--
Name:
Author:
Description:
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="Text" ResponseEncoding="UTF-8" Description="Template description here." %>
<%@ Import Namespace="System.Data" %>
<%@ Assembly Name="System.Data" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="表对象" %>
<%@ Property Name="Author" Type="System.String" Default="创捷科技"  Category="Context" Description=""%>
<%@ Property Name="NameSpace" Type="String" Default=""  Category="Context" Description="模型层命名空间名"%>
<%@ Property Name="ModelName" Type="String" Default="DAL"  Category="Context" Description="模块名称"%>

/*
=============================================================================
Copyright ( C ),1988-1999,StrongJet Tech . Co .,Ltd 
File name:
Author:<%=Author%>
CreatedTime:<%=DateTime.Now.ToShortDateString()%>
Description:<%=SourceTable.Name%>
============================================================================= 
*/
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Text;
using System.Reflection;

using <%=NameSpace%>.MOD;
using <%=NameSpace%>.DAL;

namespace <%=NameSpace%>
{
 public class <%=SourceTable.Name%>_BLL
 {
  <%=SourceTable.Name%>_DAL  dal = new <%=SourceTable.Name%>_DAL();
  
  public <%=SourceTable.Name%>_BLL(){}
  
  private static <%=SourceTable.Name%>_BLL _Instance=null;
  
  public static  <%=SourceTable.Name%>_BLL  Instance
  {
   if(_Instance==null)
   {
    _Instance = new <%=SourceTable.Name%>_BLL();
   }
   
   return _Instance;
  }
  
  ///<summary>
  ///插入一条新记录
  ///<summary>
  public int Insert(<%=SourceTable.Name%>_MOD mod)
  {
   return dal.Insert(mod);
  }
  
  ///<summary>
  ///删除一条记录
  ///<summary>
  public int Delete(<%for(int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){if(i!=SourceTable.PrimaryKey.MemberColumns.Count-1){%><%=SourceTable.Columns[i].SystemType.Name%>  <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>,<%}else{%><%=SourceTable.Columns[i].SystemType.Name%>  <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%><%}}%>)
  {
   return dal.Delete(<%for(int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){if(i!=SourceTable.PrimaryKey.MemberColumns.Count-1){%> <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>,<%}else{%> <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%><%}}%>);
  }
  
  
  ///<summary>
  //修改一条记录
  ///<summary>
  public int Update(<%for(int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){if(i!=SourceTable.PrimaryKey.MemberColumns.Count-1){%><%=SourceTable.Columns[i].SystemType.Name%>  <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>,<%}else{%><%=SourceTable.Columns[i].SystemType.Name%>  <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%><%}}%>)
  {
   return dal.Update(<%for(int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){if(i!=SourceTable.PrimaryKey.MemberColumns.Count-1){%> <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>,<%}else{%> <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%><%}}%>);
  }
  
  ///<summary>
  ///查询记录,返回DataSet
  ///<summary>
  public DataSet Select()
  {   
   return dal.Select();
  }
  
  ///<summary>
  ///查询记录,返回DataSet
  ///<summary>
  public DataSet Select(String where)
  {
   return dal.Select(where);
  }
  
  ///<summary>
  ///查询记录,返回一个实体
  ///<summary>
  public <%=SourceTable.Name%>_MOD SelectMod(<%for(int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){if(i!=SourceTable.PrimaryKey.MemberColumns.Count-1){%><%=SourceTable.Columns[i].SystemType.Name%>  <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>,<%}else{%><%=SourceTable.Columns[i].SystemType.Name%>  <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%><%}}%>)
  {
   return dal.SelectMod(<%for(int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){if(i!=SourceTable.PrimaryKey.MemberColumns.Count-1){%> <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>,<%}else{%>  <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%><%}}%>)
  }
  
  ///<summary>
  ///查询记录,返回一个List集合
  ///<summary>
  public List<<%=SourceTable.Name%>_MOD> SelectList()
  {
   return dal.SelectList();
  }
  
  ///<summary>
  ///查询记录,返回一个List集合
  ///<summary>
  public List<<%=SourceTable.Name%>_MOD> SelectList(String where)
  {
   return dal.SelectList(where);
  }
 }
}

 

 

3、数据访问层(DAL)

 

       <%--
Name:
Author:
Description:
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="Text" ResponseEncoding="UTF-8" Description="Template description here." %>
<%@ Import Namespace="System.Data" %>
<%@ Assembly Name="System.Data" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="表对象" %>
<%@ Property Name="Author" Type="System.String" Default="创捷科技"  Category="Context" Description=""%>
<%@ Property Name="NameSpace" Type="String" Default=""  Category="Context" Description="模型层命名空间名"%>
<%@ Property Name="ModelName" Type="String" Default="DAL"  Category="Context" Description="模块名称"%>

/*
=============================================================================
Copyright ( C ),1988-1999,StrongJet Tech . Co .,Ltd 
File name:
Author:<%=Author%>
CreatedTime:<%=DateTime.Now.ToShortDateString()%>
Description:<%=SourceTable.Name%>
============================================================================= 
*/
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Text;
using System.Reflection;

using <%=NameSpace%>.MOD;
namespace <%=NameSpace%>.<%=ModelName%>
{
 /// <summary>
 ///
 /// </summary>
 
 public class <%=SourceTable.Name%>_DAL
 {
  SqlHelper SqlHelper = new SqlHelper();
  
  public <%=SourceTable.Name%>_DAL()
  {
   //构造函数
   //Do Code
  }
  
  private string SelectSQL=string.Format(@" select <%for(int i=0;i<SourceTable.Columns.Count;i++)%><%{%><%if(i==0)%><%{%><%=SourceTable.Columns[i].Name.Trim()%><%}%><%else%><%{%>,<%=SourceTable.Columns[i].Name.Trim()%><%}%><%}%> from  <%=SourceTable.Name%>    where  1=1 ");
  
  private string InsertSQL=string.Format(@" insert into  <%=SourceTable.Name%>  (<%for(int i=0;i<SourceTable.Columns.Count;i++)%><%{%><%if(i==0)%><%{%><%=SourceTable.Columns[i].Name.Trim()%><%}%><%else%><%{%>,<%=SourceTable.Columns[i].Name.Trim()%><%}%><%}%>  )  values  (<%for(int i=0;i<SourceTable.Columns.Count;i++)%><%{%><%if(i==0)%><%{%>@<%=SourceTable.Columns[i].Name.Trim()%><%}%><%else%><%{%>,@<%=SourceTable.Columns[i].Name.Trim()%><%}%><%}%>  )");
  
  private string UpdateSQL=string.Format(@" Update <%=SourceTable.Name%>  set <%for(int i=0;i<SourceTable.Columns.Count;i++)%><%{%><%if(i==0)%><%{%><%=SourceTable.Columns[i].Name.Trim()%>=@<%=SourceTable.Columns[i].Name.Trim()%><%}%><%else%><%{%>,<%=SourceTable.Columns[i].Name.Trim()%>=@<%=SourceTable.Columns[i].Name.Trim()%><%}%><%}%>   where  <%=SourceTable.PrimaryKey.MemberColumns[0].Name.ToString()%>=@<%=SourceTable.PrimaryKey.MemberColumns[0].Name.ToString()%>");
  
  private string DeleteSQL=string.Format(@" Delete from  <%=SourceTable.Name%>   where  <%=SourceTable.PrimaryKey.MemberColumns[0].Name.ToString()%>=@<%=SourceTable.PrimaryKey.MemberColumns[0].Name.ToString()%>");
  
  
  ///<summary> 
  ///返回parameters对象
  ///<summary> 
  public SqlParameter[] SqlParameters(<%=SourceTable.Name%>_MOD mod)
  {
   SqlParameter[] parameters =new SqlParameter[]
   {     
    <% for(int i=0;i<SourceTable.Columns.Count;i++)%>
    <%{%>
     <%if(i!=SourceTable.Columns.Count-1)%>
     <%{%>
      new SqlParameter("@<%=SourceTable.Columns[i].Name.Trim()%>",SqlDbType.<%=ChangeSqlDbTypeName(SourceTable.Columns[i])%>),
     <%}%>
     <%else%>
     <%{%>
      new SqlParameter("@<%=SourceTable.Columns[i].Name.Trim()%>",SqlDbType.<%=ChangeSqlDbTypeName(SourceTable.Columns[i])%>)
     <%}%>
     
    <%}%> 
     
   };
   <% for(int i=0;i<SourceTable.Columns.Count;i++)%>
   <%{%>
    <%if(i!=SourceTable.Columns.Count)%>
    <%{%>
     parameters[<%=i%>].Value = mod.<%=SourceTable.Columns[i].Name.Trim()%>;
    <%}%>
   <%}%>  
   
   return parameters;
  }
  
  
  ///<summary>
  ///给实体赋值
  ///<summary>
  public <%=SourceTable.Name%>_MOD BindValueToObject(DataTable dt)
  {
   
   <%=SourceTable.Name%>_MOD mod = new <%=SourceTable.Name%>_MOD();
   if(dt.Rows.Count>0)
   {
    
    
    for(int i=0;i<dt.Rows.Count;i++)
    {
     
     Type t = mod.GetType();
     PropertyInfo[] prop = t.GetProperties(BindingFlags.Public | BindingFlags.Instance);
     foreach (PropertyInfo p in prop)
     {
      string ModName = p.Name;
      for (int j = 0; j < dt.Columns.Count; j++)
                        {
       if (ModName == dt.Columns[j].ColumnName.ToString())
       {
        p.SetValue(mod, Convert.ChangeType(dt.Rows[i][""+dt.Columns[j].ColumnName.ToString()+""].ToString(), p.PropertyType), null);
       }
      }
     }
    }
   }
   
   return mod;
  }
  
  ///<summary>
  ///查询记录,返回一个List集合
  ///<summary>
  public List<<%=SourceTable.Name%>_MOD> GetList(DataTable dt)
  {
   
   List<<%=SourceTable.Name%>_MOD> List_Mod = new List<<%=SourceTable.Name%>_MOD>();
   if(dt.Rows.Count>0)
   {
    
    
    for(int i=0;i<dt.Rows.Count;i++)
    {
     <%=SourceTable.Name%>_MOD mod = new <%=SourceTable.Name%>_MOD();
     Type t = mod.GetType();
     PropertyInfo[] prop = t.GetProperties(BindingFlags.Public | BindingFlags.Instance);
     foreach (PropertyInfo p in prop)
     {
      string ModName = p.Name;
      for (int j = 0; j < dt.Columns.Count; j++)
                        {
       if (ModName == dt.Columns[j].ColumnName.ToString())
       {
        p.SetValue(mod, Convert.ChangeType(dt.Rows[i][""+dt.Columns[j].ColumnName.ToString()+""].ToString(), p.PropertyType), null);
       }
      }
     }
     
     List_Mod.Add(mod);
    }
   }
   
   return List_Mod;
  }
  
  ///<summary>
  ///插入一条新记录
  ///<summary>
  public int Insert(<%=SourceTable.Name%>_MOD mod)
  {
   return SqlHelper.SqlHelper.RunCmdSql(InsertSQL,SqlParameters(mod));
  }
  
  ///<summary>
  ///删除一条记录
  ///<summary>
  public int Delete(<%for(int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){if(i!=SourceTable.PrimaryKey.MemberColumns.Count-1){%><%=SourceTable.Columns[i].SystemType.Name%>  <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>,<%}else{%><%=SourceTable.Columns[i].SystemType.Name%>  <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%><%}}%>)
  {
   SqlParameter[] parameters =new SqlParameter[]
   {     
    <%for(int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){%>
     <%if(i!=SourceTable.PrimaryKey.MemberColumns.Count-1)%>
     <%{%>
      new SqlParameter("@<%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>",SqlDbType.<%=ChangeSqlDbTypeName(SourceTable.Columns[i])%>),
     <%}%>
     <%else%>
     <%{%>
      new SqlParameter("@<%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>",SqlDbType.<%=ChangeSqlDbTypeName(SourceTable.Columns[i])%>)
     <%}%>
    <%}%>
   };
   <%for(int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){%>
   parameters[<%=i%>].Value = <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>;
   <%}%>
   return SqlHelper.SqlHelper.RunCmdSql(DeleteSQL,parameters);
  }
  
  ///<summary>
  ///修改一条记录
  ///<summary>
  public int Update(<%for(int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){if(i!=SourceTable.PrimaryKey.MemberColumns.Count-1){%><%=SourceTable.Columns[i].SystemType.Name%>  <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>,<%}else{%><%=SourceTable.Columns[i].SystemType.Name%>  <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%><%}}%>)
  {
   SqlParameter[] parameters =new SqlParameter[]
   {     
    <%for(int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){%>
     <%if(i!=SourceTable.PrimaryKey.MemberColumns.Count-1)%>
     <%{%>
      new SqlParameter("@<%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>",SqlDbType.<%=ChangeSqlDbTypeName(SourceTable.Columns[i])%>),
     <%}%>
     <%else%>
     <%{%>
      new SqlParameter("@<%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>",SqlDbType.<%=ChangeSqlDbTypeName(SourceTable.Columns[i])%>)
     <%}%>
    <%}%>
   };
   <%for(int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){%>
   parameters[<%=i%>].Value = <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>;
   <%}%>
   return SqlHelper.SqlHelper.RunCmdSql(DeleteSQL,parameters);
  }
  
  ///<summary>
  ///查询记录,返回DataSet
  ///<summary>
  public DataSet Select()
  {
   DataSet ds = SqlHelper.SqlHelper.ConnToDataSet(SelectSQL);
   return ds;
  }
  
  ///<summary>
  ///查询记录,返回DataSet
  ///<summary>
  public DataSet Select(String where)
  {
   SelectSQL+=where;
   DataSet ds = SqlHelper.SqlHelper.ConnToDataSet(SelectSQL);
   return ds;
  }
  
  ///<summary>
  ///查询记录,返回一个实体
  ///<summary>
  public <%=SourceTable.Name%>_MOD SelectMod(<%for(int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){if(i!=SourceTable.PrimaryKey.MemberColumns.Count-1){%><%=SourceTable.Columns[i].SystemType.Name%>  <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>,<%}else{%><%=SourceTable.Columns[i].SystemType.Name%>  <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%><%}}%>)
  {
   SqlParameter[] parameters =new SqlParameter[]
   {     
    <%for(int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){%>
     <%if(i!=SourceTable.PrimaryKey.MemberColumns.Count-1)%>
     <%{%>
      new SqlParameter("@<%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>",SqlDbType.<%=ChangeSqlDbTypeName(SourceTable.Columns[i])%>),
     <%}%>
     <%else%>
     <%{%>
      new SqlParameter("@<%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>",SqlDbType.<%=ChangeSqlDbTypeName(SourceTable.Columns[i])%>)
     <%}%>
    <%}%>
   };
   <%for(int i=0;i<SourceTable.PrimaryKey.MemberColumns.Count;i++){%>
   parameters[<%=i%>].Value = <%=SourceTable.PrimaryKey.MemberColumns[i].Name.ToString()%>;
   <%}%>
   
   DataSet ds = SqlHelper.SqlHelper.ExeSqlDataSet(SelectSQL,parameters);
   return BindValueToObject(ds.Tables[0]);
  }
  
  
  ///<summary>
  ///查询记录,返回一个List集合
  ///<summary>
  public List<<%=SourceTable.Name%>_MOD> SelectList()
  {
   DataSet ds = SqlHelper.SqlHelper.ConnToDataSet(SelectSQL);
   return GetList(ds.Tables[0]);
  }
  
  ///<summary>
  ///查询记录,返回一个List集合
  ///<summary>
  public List<<%=SourceTable.Name%>_MOD> SelectList(String where)
  {
   SelectSQL+=where;
   DataSet ds = SqlHelper.SqlHelper.ConnToDataSet(SelectSQL);
   return GetList(ds.Tables[0]);
  }
  
 }
 
}

 

<script runat="template">
public string ChangeSqlDbTypeName(ColumnSchema   Column)
{
   string _SqlDbTypeName=Column.NativeType;
 
  switch (Column.NativeType)
  {
   case "char":
   {
    _SqlDbTypeName="Char";
    break;
   }
   case "datetime":
   {
    _SqlDbTypeName="DateTime";
    break;
   }
   case "varchar":
   {
    _SqlDbTypeName="VarChar";
    break;
   }
   case "smallint":
   case "tinyint":
   {
    _SqlDbTypeName="Int";
    break;
   }
  }
    return _SqlDbTypeName;
}
</script>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值