⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdtemplate.cst

📁 几个用CodeSmith的自动生成的C#代码
💻 CST
字号:
<%-- 
Name:
Author: 
Description: 
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="C#" Src="" Inherits="" Debug="False" 
Description="Template description here." %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context"  
Description="Table to get the data from."%>

<%@ Property Name="Project" 
	Type="System.String" 
	Optional="False" 
	Category="1. Class Definition" 
	Description="The name of Folder." %>
<%@ Property Name="Folder" 
	Type="System.String" 
	Optional="False" 
	Category="1. Class Definition" 
	Description="The name of Folder." %>
	
<%@ Property Name="Summary" 
Type="System.String" 
Optional="False" 
Category="1. Class Definition" 
Description="The name of Folder." %>

<%@ Assembly Name="SchemaExplorer" %>
<%@ Assembly Name="System.Data" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Import Namespace="System.Text"%>
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Collections;
namespace <%= Project%>CD.<%= Folder%>
{
	/// <summary>
	///	<%= Summary%>
	/// </summary>
    [System.Serializable()]
	public class <%= SourceTable.Name.Substring(1)%>CD:DataTable
	{
		private string _originalTableName = "<%= SourceTable.Name%>";	//??
		#region ???????
		<% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
		/// <summary>
		/// <%=SourceTable.Columns[i].Description%>
		/// </summary>
		public static readonly String <%= GetFieldName(SourceTable.Columns[i].Name)%>_FD = "<%=SourceTable.Columns[i].Name%>";
		<%}%>
		#endregion
		#region ???
		<% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
			private DataColumn <%= GetPrivateColumnMember(SourceTable.Columns[i].Name)%>; //<%=SourceTable.Columns[i].Description%>
		<%}%>
		#endregion
		#region ??
		<% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
		/// <summary>
	    /// <%=SourceTable.Columns[i].Description%> 
	    /// </summary>
		[System.Diagnostics.DebuggerNonUserCodeAttribute()]
		public DataColumn <%= GetPublicColumnMember(SourceTable.Columns[i].Name)%>
		{
			get {return this.<%= GetPrivateColumnMember(SourceTable.Columns[i].Name)%>;}
			set { this.<%= GetPrivateColumnMember(SourceTable.Columns[i].Name)%> = value;}
		}
		<%}%>
		#endregion
		#region ????
		public <%= SourceTable.Name.Substring(1)%>CD()
		{
			this.TableName = _originalTableName;
            this.InitialClass();
		}
		/// <summary>
		/// ???????????
		/// </summary>	
		public <%= SourceTable.Name.Substring(1)%>CD(<%=ParameterForConstruct(SourceTable.Columns)%>
			) : this() {
			DataRow newRow = this.NewRow();
			<% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
			newRow[<%= GetFieldName(SourceTable.Columns[i].Name)%>_FD] = <%=MakeFirstLetterToLower(SourceTable.Columns[i].Name)%>;
			<%}%>
			this.Rows.Add(newRow);
			newRow = null;
		}
		#endregion
		#region ??
		/// <summary>
		/// ??????
		/// </summary>
        private void InitialClass()
		{
			<% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
			<%= GetPrivateColumnMember(SourceTable.Columns[i].Name)%>=new DataColumn(<%= GetFieldName(SourceTable.Columns[i].Name)%>_FD,typeof(<%=ConvertDataType(SourceTable.Columns[i])%>),null,MappingType.Element);
				base.Columns.Add(<%= GetPrivateColumnMember(SourceTable.Columns[i].Name)%>);
			<%}%>
		}
		///<summary>
		///???
		///</summary>
		public void ImportRow(DataTable dataTable)
        {
            bool flag = true;
            //InitialColumns(dataTable);
            IEnumerator iEnumerator = dataTable.Rows.GetEnumerator();
            try
            {
                while (iEnumerator.MoveNext())
                {
                    DataRow dr = (DataRow)iEnumerator.Current;
                    base.ImportRow(dr);
                }
            }
            finally
            {
                IDisposable iDisposable = iEnumerator as IDisposable;
                flag = iDisposable == null;
                if (!flag) iDisposable.Dispose();
            }
        }
		#endregion
	}
}
<script runat="template">
// My methods here.
private string GetFieldName(string columnName)
{
	StringBuilder stringBuilder = new StringBuilder(); 
	for(int i=0;i<columnName.Length;i++)
	{
		stringBuilder.Append(columnName[i].ToString().ToUpper());
		if(i < columnName.Length - 1)
		{
			int intTemp = (int)columnName[i + 1]; 
			if(intTemp > 64 && intTemp < 91)
			{
				stringBuilder.Append("_");
			}
		}
	}
	return stringBuilder.ToString();
}
private string GetPrivateColumnMember(string columnName)
{
	StringBuilder stringBuilder = new StringBuilder(); 
	stringBuilder.Append("_");
	for(int i=0;i<columnName.Length;i++)
	{
		if(i == 0)
		{
			stringBuilder.Append(columnName[i].ToString().ToLower());
		}else
		stringBuilder.Append(columnName[i].ToString());
	}
	return stringBuilder.ToString() + "Column";
}
//??????
private string GetConstructParameter(string columnName)
{
	StringBuilder stringBuilder = new StringBuilder(); 
	
	for(int i=0;i<columnName.Length;i++)
	{
		if(i == 0)
		{
			stringBuilder.Append(columnName[i].ToString().ToLower());
		}else
		stringBuilder.Append(columnName[i].ToString());
	}
	return stringBuilder.ToString() + "Column";
}
private string GetPublicColumnMember(string columnName)
{
	return columnName + "Column";
}
//??????
private string GetPrivateMember(string columnName)
{
	StringBuilder stringBuilder = new StringBuilder(); 
	stringBuilder.Append("_");
	for(int i=0;i<columnName.Length;i++)
	{
		if(i == 0)
		{
			stringBuilder.Append(columnName[i].ToString().ToLower());
		}else
		stringBuilder.Append(columnName[i].ToString());
	}
	return stringBuilder.ToString();
}
//?????????
private string ParameterForConstruct(ColumnSchemaCollection columnSchemaCollection)
{
	StringBuilder stringBuilder = new StringBuilder();
	foreach(ColumnSchema columnSchema in columnSchemaCollection)
	{
		switch(columnSchema.DataType)
		{
			case DbType.AnsiString:
				stringBuilder.Append("string "+MakeFirstLetterToLower(columnSchema.Name)+",");
				break;
			case DbType.Int16:
				stringBuilder.Append("short "+MakeFirstLetterToLower(columnSchema.Name)+",");	
				break;
			case DbType.Int32:
				stringBuilder.Append("int "+MakeFirstLetterToLower(columnSchema.Name)+",");	
				break;
		}
	}
	string str = stringBuilder.ToString();
	return str.Substring(0,str.Length - 1);
}
//??????
private string MakeFirstLetterToLower(string str)
{
	StringBuilder stringBuilder = new StringBuilder(); 
	for(int i=0;i<str.Length;i++)
	{
		if(i == 0)
		{
			stringBuilder.Append(str[i].ToString().ToLower());
		}else
		stringBuilder.Append(str[i].ToString());
	}
	return stringBuilder.ToString();
}
//??????
private string ConvertDataType(ColumnSchema columnSchema)
{	
	switch(columnSchema.DataType)
	{
		case DbType.AnsiString:
			return "string";
		case DbType.Int16:
			return "short";
		case DbType.Int32:
			return "int";
	}
	return Convert.ToString(columnSchema.DataType);
}
</script>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -