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

📄 bltemplate.txt

📁 几个用CodeSmith的自动生成的C#代码
💻 TXT
字号:
<%-- 
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="Folder" 
	Type="System.String" 
	Optional="False" 
	Category="1. Class Definition" 
	Description="The name of Folder." %>

<%@ Property Name="Project" 
	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 <%= Project%>CD.<%= Folder%>;
using <%= Project%>DA.<%= Folder%>;

namespace <%= Project%>BL.<%= Folder%>
{
	/// <summary>
	///<%= Summary%>
	/// </summary>
	public partial class <%= GetTableName()%>
	{
		#region 成员变量定义
		<% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
		private <%=ConvertDataType(SourceTable.Columns[i])%> <%=GetPrivateMember(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>
		public <%=ConvertDataType(SourceTable.Columns[i])%> <%=SourceTable.Columns[i].Name%>
		{
			get{return this.<%=GetPrivateMember(SourceTable.Columns[i].Name)%>;}
			set{this.<%=GetPrivateMember(SourceTable.Columns[i].Name)%> = value;}
		}
		<%}%>
		#endregion
		#region 构造函数
		/// <summary>
		/// 默认构造函数
		/// </summary>
		public <%= GetTableName()%>()
		{
			
		}
		/// <summary>
        /// 根据数据行值的构造函数,要求此数据行的列结构与类所对应表的列结构完全相同
        /// </summary>
		/// <param name="dr">数据行</param>
		public <%= GetTableName()%>(DataRow dr)
		{
			this.SetData(dr);
			//base.SetOld();
		}
		 /// <summary>
        /// 根据当前表主键值的构造函数
        /// </summary>
		public <%= GetTableName()%>(<%=GetPrimaryKeys(SourceTable.Columns)%>)
		{
			DataRow dr = null;
            using (<%= GetTableName()%>DA <%=MakeFirstLetterToLower(GetTableName())%>DA = new <%= GetTableName()%>DA())
            {
                <%= GetTableName()%>CD <%=MakeFirstLetterToLower(GetTableName())%>CD = <%=MakeFirstLetterToLower(GetTableName())%>DA.Get(<%=GetPrimaryKeysParamter(SourceTable.Columns)%>);
                if (<%=MakeFirstLetterToLower(GetTableName())%>CD.Rows.Count > 0)
                {
                    dr = <%=MakeFirstLetterToLower(GetTableName())%>CD.Rows[0];
                    SetData(dr);
                }
            }
		}
		#endregion
		
		#region 方法
		/// <summary>
        /// 根据主键删除当前数据
        /// </summary>
		public void Delete()
		{
			using(<%= GetTableName()%>DA <%=MakeFirstLetterToLower(GetTableName())%>DA = new <%= GetTableName()%>DA())
			{
				<%=MakeFirstLetterToLower(GetTableName())%>DA.Delete(this.GenerateCD());
			}
		}
		/// <summary>
        /// 新增一条数据
        /// </summary>
		public void Insert()
		{
			//this._dateEntered = DateTime.Now;
			<%= GetTableName()%>CD <%=MakeFirstLetterToLower(GetTableName())%>CD = this.GenerateCD();
			

			using(<%= GetTableName()%>DA <%=MakeFirstLetterToLower(GetTableName())%>DA = new <%= GetTableName()%>DA())
			{
				<%=MakeFirstLetterToLower(GetTableName())%>DA.Insert(<%=MakeFirstLetterToLower(GetTableName())%>CD);
			}
		}
		/// <summary>
        /// 根据原有数据和新修改数据,更新数据库中表的对应字段
        /// 未修改字段不更新
        /// </summary>
		public void Update()
		{
			//<%= GetTableName()%>CD addressCD = this.GenerateCD();
			//<%= GetTableName()%>CD oldData =  new <%= GetTableName()%>CD();
			//oldData.ImportRow(this._oldDataRow);
			//this.GetOriginalData(oldData);

			//using(<%= GetTableName()%>DA <%=MakeFirstLetterToLower(GetTableName())%>DA = new <%= GetTableName()%>DA())
			//{
			//	<%=MakeFirstLetterToLower(GetTableName())%>DA.Update(<%=MakeFirstLetterToLower(GetTableName())%>CD , oldData);
			//}
		}
		
		/// <summary>
        /// 根据各属性值,生成的对应CD,并进行有效性检查
        /// </summary>
		public <%= GetTableName()%>CD GenerateCD()
		{
			<%= GetTableName()%>CD <%=MakeFirstLetterToLower(GetTableName())%>CD = new <%= GetTableName()%>CD(<%=ParameterForGenerateCD(SourceTable.Columns)%>);
			return 	<%=MakeFirstLetterToLower(GetTableName())%>CD;
		}
		#region 属性值设置、初始化及有效性检查
		public void SetData(DataRow dr)
		{
			<% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
			if ( dr[<%= GetTableName()%>CD.<%= GetFieldName(SourceTable.Columns[i].Name)%>_FD] == DBNull.Value )
				this.<%=GetPrivateMember(SourceTable.Columns[i].Name)%> = <%= GetInitialValue(SourceTable.Columns[i])%> ;
			else
				this.<%=GetPrivateMember(SourceTable.Columns[i].Name)%> = <%=GetDataValue(SourceTable.Columns[i])%>;
			<%}%>
		}
		#endregion
		#endregion
	}
}


<script runat="template">
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 GetTableName()
{
	return SourceTable.Name.Substring(1);	
}
//得到私有成员
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 GetPrimaryKeys(SchemaExplorer.ColumnSchemaCollection columnSchemaCollection)
{
	StringBuilder stringBuilder = new StringBuilder();
	int i = 0;
	foreach(ColumnSchema columnSchema in columnSchemaCollection)
	{
		if(columnSchema.IsPrimaryKeyMember)
			stringBuilder.Append(columnSchema.DataType +" "+columnSchema.Name + ",");
		
	}
	string str = stringBuilder.ToString();
	return str.Substring(0,str.Length - 1);
}
//得到主键列参数
private string GetPrimaryKeysParamter(SchemaExplorer.ColumnSchemaCollection columnSchemaCollection)
{
	StringBuilder stringBuilder = new StringBuilder();
	int i = 0;
	foreach(ColumnSchema columnSchema in columnSchemaCollection)
	{
		if(columnSchema.IsPrimaryKeyMember)
			stringBuilder.Append(columnSchema.Name + ",");
		
	}
	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();
}
//为GenerateCD函数生成参数
private string ParameterForGenerateCD(ColumnSchemaCollection columnSchemaCollection)
{
	StringBuilder stringBuilder = new StringBuilder();
	foreach(ColumnSchema columnSchema in columnSchemaCollection)
	{
		stringBuilder.Append("this."+GetPrivateMember(columnSchema.Name)+",");
	}
	string str = stringBuilder.ToString();
	return str.Substring(0,str.Length - 1);
}
//得到属性值
private string GetInitialValue(ColumnSchema columnSchema)
{
	if(columnSchema.DataType == DbType.Int16) return "short.MinValue";
	else if(columnSchema.DataType == DbType.Int32) return "int.MinValue";
	else if(columnSchema.DataType == DbType.AnsiString) return "null";
	else return "null";
}
//赋值根据类型是否进行转换
private string GetDataValue(ColumnSchema columnSchema)
{
	if(columnSchema.DataType == DbType.Int16) 
		return "Convert.ToInt16(dr["+GetTableName()+"CD."+GetFieldName(columnSchema.Name)+"_FD])";
	else if(columnSchema.DataType == DbType.Int32) 
		return "Convert.ToInt32(dr["+GetTableName()+"CD."+GetFieldName(columnSchema.Name)+"_FD])";
	else if(columnSchema.DataType == DbType.AnsiString) 
		return "dr["+GetTableName()+"CD."+GetFieldName(columnSchema.Name)+"_FD].ToString()";
	else return "null";
}
//转换数据类型
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 + -