📄 bltemplate.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 + -