ldj/codeSmith/bakcup/OnTableScript.cst

105 lines
4.4 KiB
Plaintext
Raw Permalink Normal View History

2023-05-23 16:13:17 +08:00
<%@ Template Language="C#" TargetLanguage="Text" %>
<%-- 注册要生成的模板 --%>
<%@ Register Name="basicImplements" Template="basicImplements.cst" MergeProperties="Flase" ExcludeProperties=""%>
<%@ Register Name="basicObject" Template="basicObject.cst" MergeProperties="Flase" ExcludeProperties=""%>
<%@ Register Name="extModelClass" Template="extModelClass.cst" MergeProperties="Flase" ExcludeProperties=""%>
<%@ Register Name="extModelImpl" Template="extModelImpl.cst" MergeProperties="Flase" ExcludeProperties=""%>
<%@ Register Name="logic" Template="logic.cst" MergeProperties="Flase" ExcludeProperties=""%>
<%@ Register Name="wcfData" Template="WCFdata.cst" MergeProperties="Flase" ExcludeProperties=""%>
<%--声明数据库的参数在左下角的Database属性中选择要操作的数据库名称--%>
<%@ Property Name="SourceDatabase" Type="DatabaseSchema" DeepLoad="True" Optional="False" Category="Context" Description="Database that the documentation should be based on." %>
<%--Type数据类型为TableSchema表明参数Table是一个表对象。--%>
<%@ Property Name="SourceTable" Type="TableSchema" DeepLoad="True" Optional="False" Category="Table" Description="Table Name"%>
<%-- 执行输出文件的函数 --%>
<%this.OutPutFile(); %>
<script runat="template">
public string getClassName()
{
string tablename = this.SourceTable.Name.Substring(2);
string firstChar = tablename.Substring(0,1);
string className = firstChar.ToUpper() + tablename.Substring(1);
return className ;
//return this.SourceTable.Name.Substring(2);
}
//输出文件
private void OutPutFile()
{
//生成列举表名的模板
CodeTemplate basicImplements =new basicImplements();
//指定输出路径
string filePath = OutputDirectory +"\\data\\basic\\"+ getClassName() + "_base_Imp" +".cs";
//给子模板参数赋值
basicImplements.SetProperty("SourceDatabase",this.SourceDatabase);
basicImplements.SetProperty("SourceTable",this.SourceTable);
basicImplements.RenderToFile(filePath,true);
//生成列表表字段的模板
CodeTemplate basicObject =new basicObject();
//指定输出路径
filePath = OutputDirectory +"\\data\\basic\\"+ getClassName() + "_base" +".cs";
//给子模板参数赋值
basicObject.SetProperty("SourceDatabase",this.SourceDatabase);
basicObject.SetProperty("SourceTable",this.SourceTable);
basicObject.RenderToFile(filePath,true);
CodeTemplate extModelImpl =new extModelImpl();
//指定输出路径
filePath = OutputDirectory +"\\data\\"+ getClassName() + "_Imp" +".cs";
//给子模板参数赋值
extModelImpl.SetProperty("SourceTable",this.SourceTable);
extModelImpl.RenderToFile(filePath,false);//not overwrite
CodeTemplate extModelClass =new extModelClass();
//指定输出路径
filePath = OutputDirectory +"\\tables\\"+ getClassName() +".cs";
//给子模板参数赋值
extModelClass.SetProperty("SourceTable",this.SourceTable);
extModelClass.RenderToFile(filePath,false);//not overwrite
CodeTemplate logic =new logic();
//指定输出路径
filePath = OutputDirectory +"\\logic\\l"+ getClassName() +".cs";
//给子模板参数赋值
logic.SetProperty("SourceTable",this.SourceTable);
logic.RenderToFile(filePath,false);//not overwrite
CodeTemplate wcfData =new wcfData();
//指定输出路径
filePath = OutputDirectory +"\\wcfData\\wcf"+ getClassName() +".cs";
//给子模板参数赋值
wcfData.SetProperty("SourceDatabase",this.SourceDatabase);
wcfData.SetProperty("SourceTable",this.SourceTable);
wcfData.RenderToFile(filePath,false);//not overwrite
}
//解决方案输出路径
private string Directory = String.Empty;
[Editor(typeof(System.Windows.Forms.Design.FolderNameEditor), typeof(System.Drawing.Design.UITypeEditor))]
[Optional, NotChecked]
[DefaultValue("")]
public string OutputDirectory
{
get
{
return Directory;
}
set
{
if (value.EndsWith("\\")) value = value.Substring(0, value.Length -1);
Directory = value;
}
}
</script>