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