CodeSmith在使用中,对数据库中表字段进行处理时,需要封装一些公用方法。下面提供调用方法:
一.创建工具类Common.cs,类下的属性和方法必须为静态类。代码如下:
public static class Common
{
/// <summary>
/// 获取当前日期
/// </summary>
/// <returns></returns>
public static string getDate()
{
return DateTime.Now.ToString("yyyy-MM-dd");
}
/// <summary>
/// 获取表所有列以“,”分隔字符串
/// </summary>
/// <param name="tableName"></param>
/// <param name="preFixValue"></param>
/// <returns></returns>
public static string JoinColunmNames(SchemaExplorer.TableSchema tableName, string preFixValue = "")
{
string columnsNames = "";
foreach (ColumnSchema col in tableName.Columns)
{
columnsNames += preFixValue + col.Name + ",";
}
return columnsNames.Substring(0, columnsNames.Length - 1);
}
}
二.调用方法如下
<%@ CodeTemplate Language="C#" TargetLanguage="Text" Src="" Inherits="" Debug="False"CompilerVersion="v3.5" Description="Template description here." %>
<%
curColumns=Common.JoinColunmNames(this.SourceTable);
%>
<%=Common.getDate()%>
select <%=curColumns%> from <%=this.SourceTable.Name%>
<script runat="template">
<!-- #include file="Common.cs" --> //引用工具类
/// <summary>
/// 列名(多个“,”分隔)
/// </summary>
string curColumns="";//定义变量,
</script>
注意事项:
1. codesmith对象的属性和方法只能在"<%%>"中调用,在"<script>" 里识别不了。
2.调用工具类的方法时必须放在页面最上面进行变量赋值,后面引用时才能访问到。
3.引用工具类的方法必须写在<script>里。 <!-- #include file="文件名" -->
4.变量只能定义在<script>里,调用时可以查询提示。工具类必须为静态类,不然会报错。