CodeSmith .NET三层架构模板

来源:互联网 发布:linux下安装wine 编辑:程序博客网 时间:2024/04/26 01:07

Model模板文件:

<%@ CodeTemplate Language="C#" TargetLanguage="C#" Description="Generates a class including a special informational header" %><%@ Assembly Name="SchemaExplorer" %><%@ Import Namespace="SchemaExplorer" %><%@ Import Namespace="System.Text" %><%@ Property Name="NameSpace" Type="String" Category="Context" Description="The namespace to use for this class" %><%@ Property Name="TableName" Type="SchemaExplorer.TableSchema" DeepLoad="True" Optional="False" Category="Context" Description="The name of the table to generate" %><%@ Property Name="Author" Type="String" Category="Context"  Description="Author" %><%@ Property Name="TablePrefix" Type="System.String" Default="T" Category="Context" Description="The prefix to remove from table names" %>/*------------------------------------------------// File Name:<%=ClearPrefix(TableName.Name) %>Info.cs// File Description:<%=ClearPrefix(TableName.Name) %> DataBase Entity// Author:<%=Author%>// Create Time:<%= DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")%>//------------------------------------------------*/using System;namespace <%=NameSpace%>.Model{   /// <summary>   /// Description <%=TableName.Description %>   /// </summary>   [Serializable]   public class <%=ClearPrefix(TableName.Name) %>Info   {  #region Private Protery  <%for(int i=0;i<TableName.Columns.Count;i++){%>  private <%=CSharpType(TableName.Columns[i])%> _<%=TableName.Columns[i].Name.Substring(0,1).ToLower()+TableName.Columns[i].Name.Substring(1,TableName.Columns[i].Name.Length-1)%>;  <%}%>  #endregion    #region Constructor  /// <summary>  /// <%=ClearPrefix(TableName.Name) %> Constructor  /// </summary>    public <%=ClearPrefix(TableName.Name) %>Info()    {    }  /// <summary>  /// <%=ClearPrefix(TableName.Name) %> Constructor With Parameters  /// </summary>  <%for(int i=0;i<TableName.Columns.Count;i++){%>  ///<param name="<%=TableName.Columns[i].Name.Substring(0,1).ToLower()+TableName.Columns[i].Name.Substring(1,TableName.Columns[i].Name.Length-1)%>"><%if(TableName.Columns[i].Description.Length>0){%><%=TableName.Columns[i].Name+"  "+TableName.Columns[i].Description%><%}else{%><%=TableName.Columns[i].Name%><%}%></param>  <%}%>  public <%=ClearPrefix(TableName.Name) %>Info(<%for(int i=0;i<TableName.Columns.Count;i++){%><%=CSharpType(TableName.Columns[i])%> <%=TableName.Columns[i].Name.Substring(0,1).ToLower()+TableName.Columns[i].Name.Substring(1,TableName.Columns[i].Name.Length-1)%><% if (i < TableName.Columns.Count - 1) { %>,<%}%><%}%>)  {  <%for(int i=0;i<TableName.Columns.Count;i++){%>   this._<%=TableName.Columns[i].Name.Substring(0,1).ToLower()+TableName.Columns[i].Name.Substring(1,TableName.Columns[i].Name.Length-1)%> = <%=TableName.Columns[i].Name.Substring(0,1).ToLower()+TableName.Columns[i].Name.Substring(1,TableName.Columns[i].Name.Length-1)%>;  <%}%>  }  #endregion      #region Public Property        <%for(int i=0;i<TableName.Columns.Count;i++){%>  ///<Summary>  /// <%=TableName.Columns[i].Name%><%if(TableName.Columns[i].Description.Length>0){%>  /// <%=TableName.Columns[i].Description%><%}%>  ///</Summary> public <%=CSharpType(TableName.Columns[i]).Trim()%> <%=TableName.Columns[i].Name%>  {  get { return _<%=TableName.Columns[i].Name.Substring(0,1).ToLower()+TableName.Columns[i].Name.Substring(1,TableName.Columns[i].Name.Length-1)%>; }   set {  _<%=TableName.Columns[i].Name.Substring(0,1).ToLower()+TableName.Columns[i].Name.Substring(1,TableName.Columns[i].Name.Length-1)%> = value; }  }<%}%>  #endregion     }}<script runat="template">public string CSharpType(ColumnSchema column){ if (column.Name.EndsWith("TypeCode")) return column.Name; switch (column.DataType) {  case DbType.AnsiString:  case DbType.String:  case DbType.StringFixedLength:  case DbType.AnsiStringFixedLength: return "string";  case DbType.VarNumeric:  case DbType.Currency:  case DbType.Decimal: return "decimal";  case DbType.Binary: return "byte[]";  case DbType.Boolean: return "bool";  case DbType.Byte: return "byte";  case DbType.Date: return "DateTime";  case DbType.DateTime: return "DateTime";  case DbType.Double: return "double";  case DbType.Guid: return "Guid";  case DbType.Int16: return "short";  case DbType.Int32: return "int";  case DbType.Int64: return "long";  case DbType.Object: return "object";  case DbType.SByte: return "sbyte";  case DbType.Single: return "float";  case DbType.Time: return "TimeSpan";  case DbType.UInt16: return "ushort";  case DbType.UInt32: return "uint";  case DbType.UInt64: return "ulong";  default:  {   return "__UNKNOWN__" + column.NativeType;  } }}public string ClearPrefix(string name){    int mIndex=name.IndexOf(TablePrefix);    string strResult=name.Remove(0,TablePrefix.Length);    return strResult;}</script>

IDAL模板文件:

<%@ CodeTemplate Language="C#" TargetLanguage="C#" Description="Generates a class including a special informational header" %><%@ Assembly Name="SchemaExplorer" %><%@ Import Namespace="SchemaExplorer" %><%@ Import Namespace="System.Text" %><%@ Property Name="Namespace" Type="String" Category="Context" Description="The namespace to use for this class" %><%@ Property Name="TableName" Type="SchemaExplorer.TableSchema" DeepLoad="True" Optional="False" Category="Context" Description="The name of the table to generate" %><%@ Property Name="Author" Type="String" Category="Context"  Description="Author" %><%@ Property Name="TablePrefix" Type="System.String" Default="T" Category="Context" Description="The prefix to remove from table names" %>/*------------------------------------------------// File Name:I<%=ClearPrefix(TableName.Name) %>.cs// File Description:<%=ClearPrefix(TableName.Name) %> Interface// Author:<%=Author%>// Create Time:<%= DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")%>//------------------------------------------------*/using System;using System.Text;using System.Collections.Generic;using <%=Namespace%>.Model;namespace <%=Namespace%>.IDAL{/// <summary>    /// <%=ClearPrefix(TableName.Name) %> Interface    /// </summary>public interface I<%=ClearPrefix(TableName.Name) %>{/// <summary>        /// Add <%=ClearPrefix(TableName.Name) %>        /// </summary>        /// <param name="model"><%=ClearPrefix(TableName.Name) %> Model</param>        /// <returns>True or False</returns>bool Add(<%=ClearPrefix(TableName.Name) %>Info model);/// <summary>        /// Delete <%=ClearPrefix(TableName.Name) %> By ID        /// </summary>        /// <param name="id"><%=ClearPrefix(TableName.Name) %> ID</param>        /// <returns>True or False</returns>bool DeleteByID(int id);/// <summary>        /// Delete <%=ClearPrefix(TableName.Name) %> By Name        /// </summary>        /// <param name="name"><%=ClearPrefix(TableName.Name) %> Name</param>        /// <returns>True or False</returns>bool DeleteByName(string name);/// <summary>        /// Update <%=ClearPrefix(TableName.Name) %>        /// </summary>        /// <param name="model"><%=ClearPrefix(TableName.Name) %> Model</param>        /// <returns>True or False</returns>bool Update(<%=ClearPrefix(TableName.Name) %>Info model);/// <summary>        /// Get <%=ClearPrefix(TableName.Name) %> By ID        /// </summary>        /// <param name="id"><%=ClearPrefix(TableName.Name) %> ID</param>        /// <returns><%=ClearPrefix(TableName.Name) %> Model</returns><%=ClearPrefix(TableName.Name) %>Info Get<%=ClearPrefix(TableName.Name) %>InfoByID(int id);/// <summary>        /// Get <%=ClearPrefix(TableName.Name) %> By Name        /// </summary>        /// <param name="name"><%=ClearPrefix(TableName.Name) %> Name</param>        /// <returns><%=ClearPrefix(TableName.Name) %> Model</returns><%=ClearPrefix(TableName.Name) %>Info Get<%=ClearPrefix(TableName.Name) %>InfoByName(string name);/// <summary>        /// Get <%=ClearPrefix(TableName.Name) %> List        /// </summary>        /// <returns><%=ClearPrefix(TableName.Name) %> List</returns>IList<<%=ClearPrefix(TableName.Name) %>Info> Get<%=ClearPrefix(TableName.Name) %>ListByPage();/// <summary>        /// Check If <%=ClearPrefix(TableName.Name) %> Exist        /// </summary>/// <param name="name"><%=ClearPrefix(TableName.Name) %> Name</param>        /// <returns>True or False</returns>bool Is<%=ClearPrefix(TableName.Name) %>Exist(string name);}}<script runat="template">public string ClearPrefix(string name){    int mIndex=name.IndexOf(TablePrefix);    string strResult=name.Remove(0,TablePrefix.Length);    return strResult;}</script>

SQLServerDAL模板文件:

<%@ CodeTemplate Language="C#" TargetLanguage="C#" Description="Generates a class including a special informational header" %><%@ Assembly Name="SchemaExplorer" %><%@ Import Namespace="SchemaExplorer" %><%@ Import Namespace="System.Text" %><%@ Property Name="Namespace" Type="String" Category="Context" Description="The namespace to use for this class" %><%@ Property Name="TableName" Type="SchemaExplorer.TableSchema" DeepLoad="True" Optional="False" Category="Context" Description="The name of the table to generate" %><%@ Property Name="Author" Type="String" Category="Context"  Description="Author" %><%@ Property Name="TablePrefix" Type="System.String" Default="T" Category="Context" Description="The prefix to remove from table names" %>/*------------------------------------------------// File Name:<%=ClearPrefix(TableName.Name) %>.cs// File Description:<%=ClearPrefix(TableName.Name) %> SQL Server DataBase Access// Author:<%=Author%>// Create Time:<%= DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")%>//------------------------------------------------*/using System;using System.Text;using System.Collections.Generic;using System.Data;using System.Data.SqlClient;using <%=Namespace%>.Model;using <%=Namespace%>.IDAL;namespace <%=Namespace%>.DAL{/// <summary>    /// <%=ClearPrefix(TableName.Name) %>    /// </summary>public class <%=ClearPrefix(TableName.Name) %>:I<%=ClearPrefix(TableName.Name) %>{public <%=ClearPrefix(TableName.Name) %>(){}#region <%=ClearPrefix(TableName.Name) %> Interface Implement/// <summary>        /// Add <%=ClearPrefix(TableName.Name) %>        /// </summary>        /// <param name="model"><%=ClearPrefix(TableName.Name) %> Model</param>        /// <returns>True or False</returns>public bool Add(<%=ClearPrefix(TableName.Name) %>Info model){SqlParameter[] param = new SqlParameter[<%=TableName.Columns.Count-1 %>];        <%for(int i=0;i<TableName.Columns.Count;i++){if(((bool)TableName.Columns[i].ExtendedProperties["CS_IsIdentity"].Value) == true) { continue;}%>param[<%=i %>] = new SqlParameter("@<%=TableName.Columns[i].Name%>",model.<%=TableName.Columns[i].Name%>);  <%}%>        try{SQLHelper.ExecuteNonQuery(CommandType.StoredProcedure,"SP_Add<%=ClearPrefix(TableName.Name) %>", param);return true;}catch{return false;}}/// <summary>        /// Delete <%=ClearPrefix(TableName.Name) %> By ID        /// </summary>        /// <param name="id"><%=ClearPrefix(TableName.Name) %> ID</param>        /// <returns>True or False</returns>public bool DeleteByID(int id){SqlParameter[] param = new SqlParameter[1];param[0] = new SqlParameter("@id", id);try{SQLHelper.ExecuteNonQuery(CommandType.StoredProcedure,"SP_Del<%=ClearPrefix(TableName.Name) %>ByID", param);return true;}catch{return false;}}/// <summary>        /// Delete <%=ClearPrefix(TableName.Name) %> By Name        /// </summary>        /// <param name="name"><%=ClearPrefix(TableName.Name) %> Name</param>        /// <returns>True or False</returns>public bool DeleteByName(string name){SqlParameter[] param = new SqlParameter[1];param[0] = new SqlParameter("@name",name);try{SQLHelper.ExecuteNonQuery(CommandType.StoredProcedure,"SP_Del<%=ClearPrefix(TableName.Name) %>ByName", param);return true;}catch{return false;}}/// <summary>        /// Update <%=ClearPrefix(TableName.Name) %>        /// </summary>        /// <param name="model"><%=ClearPrefix(TableName.Name) %> Model</param>        /// <returns>True or False</returns>public bool Update(<%=ClearPrefix(TableName.Name) %>Info model){SqlParameter[] param = new SqlParameter[<%=TableName.Columns.Count-1 %>];        <%for(int i=0;i<TableName.Columns.Count;i++){%>param[<%=i %>] = new SqlParameter("@<%=TableName.Columns[i].Name%>",model.<%=TableName.Columns[i].Name%>);  <%}%>        try{SQLHelper.ExecuteNonQuery(CommandType.StoredProcedure,"SP_Update<%=ClearPrefix(TableName.Name) %>", param);return true;}catch{return false;}}/// <summary>        /// Get <%=ClearPrefix(TableName.Name) %> By ID        /// </summary>        /// <param name="id"><%=ClearPrefix(TableName.Name) %> ID</param>        /// <returns><%=ClearPrefix(TableName.Name) %> Model</returns>public <%=ClearPrefix(TableName.Name) %>Info Get<%=ClearPrefix(TableName.Name) %>InfoByID(int id){SqlParameter[] param = new SqlParameter[1];param[0] = new SqlParameter("@id", id);<%=ClearPrefix(TableName.Name) %>Info model = null;            using (SqlDataReader dr = SQLHelper.ExecuteReader(CommandType.StoredProcedure,"SP_Get<%=ClearPrefix(TableName.Name) %>ByID", param))            {                while (dr.Read())                {                    model = Get<%=ClearPrefix(TableName.Name) %>Model(dr);                }                return model;            }}/// <summary>        /// Get <%=ClearPrefix(TableName.Name) %> By Name        /// </summary>        /// <param name="name"><%=ClearPrefix(TableName.Name) %> Name</param>        /// <returns><%=ClearPrefix(TableName.Name) %> Model</returns>public <%=ClearPrefix(TableName.Name) %>Info Get<%=ClearPrefix(TableName.Name) %>InfoByName(string name){SqlParameter[] param = new SqlParameter[1];param[0] = new SqlParameter("@name", name);<%=ClearPrefix(TableName.Name) %>Info model = null;            using (SqlDataReader dr = SQLHelper.ExecuteReader(CommandType.StoredProcedure,"SP_Get<%=ClearPrefix(TableName.Name) %>ByName", param))            {                while (dr.Read())                {                    model = Get<%=ClearPrefix(TableName.Name) %>Model(dr);                }                return model;            }}/// <summary>        /// Get <%=ClearPrefix(TableName.Name) %> List        /// </summary>        /// <returns><%=ClearPrefix(TableName.Name) %> List</returns>public IList<<%=ClearPrefix(TableName.Name) %>Info> Get<%=ClearPrefix(TableName.Name) %>ListByPage(){using (SqlDataReader dr = SQLHelper.ExecuteReader(CommandType.StoredProcedure, "SP_Get<%=ClearPrefix(TableName.Name) %>ListByPage", null))            {                IList<<%=ClearPrefix(TableName.Name) %>Info> list = new List<<%=ClearPrefix(TableName.Name) %>Info>();                while(dr.Read())                {                    list.Add(Get<%=ClearPrefix(TableName.Name) %>Model(dr));                }                return list;            }}/// <summary>        /// Check If <%=ClearPrefix(TableName.Name) %> Exist        /// </summary>/// <param name="name"><%=ClearPrefix(TableName.Name) %> Name</param>        /// <returns>True or False</returns>public bool Is<%=ClearPrefix(TableName.Name) %>Exist(string name){SqlParameter[] param = new SqlParameter[1];param[0] = new SqlParameter("@name", name);return Convert.ToBoolean(SQLHelper.ExecuteScalar(CommandType.StoredProcedure,"SP_Is<%=ClearPrefix(TableName.Name) %>Exist", param));}#endregion#region Private Methodsprivate <%=ClearPrefix(TableName.Name) %>Info Get<%=ClearPrefix(TableName.Name) %>Model(SqlDataReader dr){<%=ClearPrefix(TableName.Name) %>Info model=new <%=ClearPrefix(TableName.Name) %>Info();<%for(int i=0;i<TableName.Columns.Count;i++){%>model.<%=TableName.Columns[i].Name%>=SQLDataHelper.<%=CSharpType(TableName.Columns[i])%>(dr, "<%=TableName.Columns[i].Name%>");  <%}%>return model;}private IList<<%=ClearPrefix(TableName.Name) %>Info> Get<%=ClearPrefix(TableName.Name) %>List(SqlDataReader dr){IList<<%=ClearPrefix(TableName.Name) %>Info> list = new List<<%=ClearPrefix(TableName.Name) %>Info>();            while (dr.Read())            {                list.Add(Get<%=ClearPrefix(TableName.Name) %>Model(dr));            }            return list;}#endregion}}<script runat="template">public string CSharpType(ColumnSchema column){ if (column.Name.EndsWith("TypeCode")) return column.Name; switch (column.DataType) {  case DbType.AnsiString:  case DbType.String:  case DbType.StringFixedLength:  case DbType.AnsiStringFixedLength: return "GetString";  case DbType.Int16:  case DbType.Int32:  case DbType.Int64:  case DbType.UInt16:  case DbType.UInt32:  case DbType.UInt64: return "GetInt";  case DbType.Time:  case DbType.Date:  case DbType.DateTime: return "GetDateTime";  case DbType.Binary:  case DbType.SByte:  case DbType.Byte: return "GetBytes";  case DbType.VarNumeric:  case DbType.Currency:  case DbType.Decimal: return "GetDecimal";  case DbType.Single:  case DbType.Double: return "GetDouble";  case DbType.Boolean: return "GetBoolean";  case DbType.Guid: return "GetGuid";  case DbType.Object: return "GetObject";  default:  {   return "__UNKNOWN__" + column.NativeType;  } }}public string ClearPrefix(string name){    int mIndex=name.IndexOf(TablePrefix);    string strResult=name.Remove(0,TablePrefix.Length);    return strResult;}</script>

BLL模板文件:

<%@ CodeTemplate Language="C#" TargetLanguage="C#" Description="Generates a class including a special informational header" %><%@ Assembly Name="SchemaExplorer" %><%@ Import Namespace="SchemaExplorer" %><%@ Import Namespace="System.Text" %><%@ Property Name="Namespace" Type="String" Category="Context" Description="The namespace to use for this class" %><%@ Property Name="TableName" Type="SchemaExplorer.TableSchema" DeepLoad="True" Optional="False" Category="Context" Description="The name of the table to generate" %><%@ Property Name="Author" Type="String" Category="Context"  Description="Author" %><%@ Property Name="TablePrefix" Type="System.String" Default="T" Category="Context" Description="The prefix to remove from table names" %>/*------------------------------------------------// File Name:<%=ClearPrefix(TableName.Name) %>BLL.cs// File Description:<%=ClearPrefix(TableName.Name) %> Business Logic// Author:<%=Author%>// Create Time:<%= DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")%>//------------------------------------------------*/using System;using System.Text;using System.Collections.Generic;using <%=Namespace%>.Model;using <%=Namespace%>.IDAL;namespace <%=Namespace%>.BLL{/// <summary>    /// <%=ClearPrefix(TableName.Name) %>BLL    /// </summary>public class <%=ClearPrefix(TableName.Name) %>BLL{//Get <%=ClearPrefix(TableName.Name) %> Entity Class from Factory Layer        private static readonly I<%=ClearPrefix(TableName.Name) %> dal = <%=Namespace%>.DALFactory.DataAccess.<%=ClearPrefix(TableName.Name) %>();/// <summary>        /// Add <%=ClearPrefix(TableName.Name) %>        /// </summary>        /// <param name="model"><%=ClearPrefix(TableName.Name) %> Model</param>        /// <returns>True or False</returns>public bool Add(<%=ClearPrefix(TableName.Name) %>Info model){return dal.Add(model);}/// <summary>        /// Delete <%=ClearPrefix(TableName.Name) %> By ID        /// </summary>        /// <param name="id"><%=ClearPrefix(TableName.Name) %> ID</param>        /// <returns>True or False</returns>public bool DeleteByID(int id){return dal.DeleteByID(id);}/// <summary>        /// Delete <%=ClearPrefix(TableName.Name) %> By Name        /// </summary>        /// <param name="name"><%=ClearPrefix(TableName.Name) %> Name</param>        /// <returns>True or False</returns>public bool DeleteByName(string name){return dal.DeleteByName(name);}/// <summary>        /// Update <%=ClearPrefix(TableName.Name) %>        /// </summary>        /// <param name="model"><%=ClearPrefix(TableName.Name) %> Model</param>        /// <returns>True or False</returns>public bool Update(<%=ClearPrefix(TableName.Name) %>Info model){return dal.Update(model);}/// <summary>        /// Get <%=ClearPrefix(TableName.Name) %> By ID        /// </summary>        /// <param name="id"><%=ClearPrefix(TableName.Name) %> ID</param>        /// <returns><%=ClearPrefix(TableName.Name) %> Model</returns>public <%=ClearPrefix(TableName.Name) %>Info Get<%=ClearPrefix(TableName.Name) %>InfoByID(int id){return dal.Get<%=ClearPrefix(TableName.Name) %>InfoByID(id);}/// <summary>        /// Get <%=ClearPrefix(TableName.Name) %> By Name        /// </summary>        /// <param name="name"><%=ClearPrefix(TableName.Name) %> Name</param>        /// <returns><%=ClearPrefix(TableName.Name) %> Model</returns>public <%=ClearPrefix(TableName.Name) %>Info Get<%=ClearPrefix(TableName.Name) %>InfoByName(string name){return dal.Get<%=ClearPrefix(TableName.Name) %>InfoByName(name);}/// <summary>        /// Get <%=ClearPrefix(TableName.Name) %> List        /// </summary>        /// <returns><%=ClearPrefix(TableName.Name) %> List</returns>public IList<<%=ClearPrefix(TableName.Name) %>Info> Get<%=ClearPrefix(TableName.Name) %>ListByPage(){return dal.Get<%=ClearPrefix(TableName.Name) %>ListByPage();}/// <summary>        /// Check If <%=ClearPrefix(TableName.Name) %> Exist        /// </summary>/// <param name="name"><%=ClearPrefix(TableName.Name) %> Name</param>        /// <returns>True or False</returns>public bool Is<%=ClearPrefix(TableName.Name) %>Exist(string name){return dal.Is<%=ClearPrefix(TableName.Name) %>Exist(name);}}}<script runat="template">public string ClearPrefix(string name){    int mIndex=name.IndexOf(TablePrefix);    string strResult=name.Remove(0,TablePrefix.Length);    return strResult;}</script>