概观

MyGeneration目前使用了两种脚本引擎,一个是Microsoft Scripting Engine,它提供了JScript和VBScript的生成支持;另一个是 DotNetScript ,它提供了 VB.NET 和 C# 的支持。 DotNetScript 不像Microsoft Scripting Control那样的真正的脚本。实际上,它在运行时编译代码,然后利用编译后的.NET Assembly执行代码。这个教程通过例子说明使用 DotNetScript 开发MyGeneration模板的赞成与反对的理由。在这个例子中,我将使用C#和MS SQL中附带的Northwind数据库。

创建一个新的C#模板

  • 打开MyGeneration
  • 通过File->New->C# Template创建一个新的模板
  • 点击属性按钮编辑模板的属性
  • 如下图,填充模板的属性
  • 保存模板


MyGeneration工具开发.Net Script模板_模板 

研究默认的模板代码
默认的模板主体代码:

不 像 JScript 或VBScript,C#的的模板代码相对较少。这个默认的代码是非常重要的。一个C#模板必须有一个继承了 DotNetScriptTemplate 的名为 GeneratedTemplate 的类。 MyGeneration 通过实例化 GeneratedTemplate ,并调用Render方法开始生成过程。几乎大部分的模板开发工作都在Render方法里面完成。试试执行这个模板,你将会看到literal content goes here作为输出出现。

MyGeneration工具开发.Net Script模板_模板_02<%
MyGeneration工具开发.Net Script模板_模板_02 
public class GeneratedTemplate : DotNetScriptTemplate
MyGeneration工具开发.Net Script模板_模板开发_04 
{
MyGeneration工具开发.Net Script模板_MyGeneration_05        
public GeneratedTemplate(ZeusContext context) : base(context) {}
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06        
public override void Render()
MyGeneration工具开发.Net Script模板_MyGeneration_05        
{
MyGeneration工具开发.Net Script模板_Script_06 
%>
MyGeneration工具开发.Net Script模板_Script_06 Literal content goes here.
MyGeneration工具开发.Net Script模板_Script_06 
<%
MyGeneration工具开发.Net Script模板_MyGeneration_13        }

MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_MyGeneration_16 }

MyGeneration工具开发.Net Script模板_模板_02 
%>

默认的UI接口代码:

在默认的模板的接口代码中,同样需要一个名为GeneratedGui的,继承DotNetScriptGui的强制类。如同模板主体代码的Render方法一样, MyGeneration 将调用Setup方法开始显示用户接口并收集输入。

MyGeneration工具开发.Net Script模板_模板_02public class GeneratedGui : DotNetScriptGui
MyGeneration工具开发.Net Script模板_模板开发_04 
{
MyGeneration工具开发.Net Script模板_MyGeneration_05        
public GeneratedGui(ZeusContext context) : base(context) {}
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06        
public override void Setup()
MyGeneration工具开发.Net Script模板_MyGeneration_05        
{
MyGeneration工具开发.Net Script模板_MyGeneration_13        }

MyGeneration工具开发.Net Script模板_MyGeneration_16 }

MyGeneration工具开发.Net Script模板_模板_02

获取输入:用户接口的代码块

在这个例子中,用户将通过接口选择一个表。这个是接口代码块的擅长的工作。用户接口获取的输入数据,将在模板主体代码中用来生成代码。
使用MyGeneration的接口代码:

MyGeneration工具开发.Net Script模板_模板_02public class GeneratedGui : DotNetScriptGui
MyGeneration工具开发.Net Script模板_模板开发_04 
{
MyGeneration工具开发.Net Script模板_MyGeneration_05        
public GeneratedGui(ZeusContext context) : base(context) {}
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06        
public override void Setup()
MyGeneration工具开发.Net Script模板_MyGeneration_05        
{
MyGeneration工具开发.Net Script模板_Script_06                ui.Title 
= ".NetScript C# Sample: Java Class";
MyGeneration工具开发.Net Script模板_Script_06                ui.Width 
= 340;
MyGeneration工具开发.Net Script模板_Script_06                ui.Height 
= 200;
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06                
// Setup Database selection combobox.
MyGeneration工具开发.Net Script模板_Script_06
                GuiLabel label_d = ui.AddLabel("lblDatabases""Select a database:""Select a database in the dropdown below.");
MyGeneration工具开发.Net Script模板_Script_06                GuiComboBox cmbDatabases 
= ui.AddComboBox("databaseName""Select a database.");
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06                
// Setup Tables selection multi-select listbox.
MyGeneration工具开发.Net Script模板_Script_06
                GuiLabel label_t = ui.AddLabel("lblTables""Select table:""Select table from the combobox below.");
MyGeneration工具开发.Net Script模板_Script_06                GuiComboBox cmbTables 
= ui.AddComboBox("tableName""Select a table.");
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06                
// bind data to the controls
MyGeneration工具开发.Net Script模板_Script_06
                cmbDatabases.BindData(MyMeta.Databases);
MyGeneration工具开发.Net Script模板_Script_06                cmbDatabases.SelectedValue 
= MyMeta.DefaultDatabase.Name;
MyGeneration工具开发.Net Script模板_Script_06                cmbTables.BindData( MyMeta.Databases[cmbDatabases.SelectedValue].Tables );
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06                
// Attach the onchange event to the cmbDatabases control.
MyGeneration工具开发.Net Script模板_Script_06
                cmbDatabases.AttachEvent("onchange""cmbDatabases_onchange");
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06                ui.ShowGui 
= true;
MyGeneration工具开发.Net Script模板_MyGeneration_13        }

MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06        
public void cmbDatabases_onchange(GuiComboBox control)
MyGeneration工具开发.Net Script模板_MyGeneration_05        
{
MyGeneration工具开发.Net Script模板_Script_06                GuiComboBox cmbDatabases 
= ui["databaseName"as GuiComboBox;
MyGeneration工具开发.Net Script模板_Script_06                GuiComboBox cmbTables 
= ui["tableName"as GuiComboBox;
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06                cmbTables.BindData( MyMeta.Databases[cmbDatabases.SelectedValue].Tables );
MyGeneration工具开发.Net Script模板_MyGeneration_13        }

MyGeneration工具开发.Net Script模板_MyGeneration_16 }

使用.NET Windows Form API的接口代码:
下面的代码是不使用 MyGeneration API的替换方案,它可以达到与上面的代码同样的目的。

MyGeneration工具开发.Net Script模板_模板_02<%#REFERENCE System.Windows.Forms.dll %>
MyGeneration工具开发.Net Script模板_模板_02 
<%#NAMESPACE System.Windows.Forms %>
MyGeneration工具开发.Net Script模板_模板_02 
public class GeneratedGui : DotNetScriptGui
MyGeneration工具开发.Net Script模板_模板开发_04 
{
MyGeneration工具开发.Net Script模板_MyGeneration_05        
public GeneratedGui(ZeusContext context) : base(context) {}
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06        
public override void Setup() 
MyGeneration工具开发.Net Script模板_MyGeneration_05        
{
MyGeneration工具开发.Net Script模板_Script_06                AcquireInputForm form 
= new AcquireInputForm(MyMeta, input); 
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06                
if (form.ShowDialog() != DialogResult.OK) 
MyGeneration工具开发.Net Script模板_MyGeneration_05                
{
MyGeneration工具开发.Net Script模板_Script_06                        ui.IsCanceled 
= true;
MyGeneration工具开发.Net Script模板_MyGeneration_13                }

MyGeneration工具开发.Net Script模板_MyGeneration_13        }

MyGeneration工具开发.Net Script模板_MyGeneration_16 }

MyGeneration工具开发.Net Script模板_模板_02
MyGeneration工具开发.Net Script模板_模板_02
MyGeneration工具开发.Net Script模板_模板_02 
public class AcquireInputForm : Form
MyGeneration工具开发.Net Script模板_模板开发_04 
{
MyGeneration工具开发.Net Script模板_Script_06        
private ComboBox cboDatabases = new ComboBox();
MyGeneration工具开发.Net Script模板_Script_06        
private ComboBox cboTables = new ComboBox();
MyGeneration工具开发.Net Script模板_Script_06        
private Button btnOk = new Button();
MyGeneration工具开发.Net Script模板_Script_06        
private dbRoot meta;
MyGeneration工具开发.Net Script模板_Script_06        
private IZeusInput input;
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06        
public AcquireInputForm(dbRoot mymeta, IZeusInput zin)
MyGeneration工具开发.Net Script模板_MyGeneration_05        
{
MyGeneration工具开发.Net Script模板_Script_06                
this.meta = mymeta;
MyGeneration工具开发.Net Script模板_Script_06                
this.input = zin;
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06                
this.BindComboBox(cboDatabases, meta.Databases);
MyGeneration工具开发.Net Script模板_Script_06                cboDatabases.SelectedItem 
= meta.DefaultDatabase.Name;
MyGeneration工具开发.Net Script模板_Script_06                cboDatabases.Top 
= 10; cboDatabases.Left = 10; cboDatabases.Width =  200;
MyGeneration工具开发.Net Script模板_Script_06                cboDatabases.SelectedIndexChanged 
+= new EventHandler(cboDatabases_SelectedIndexChanged);
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06                
this.BindComboBox(cboTables, meta.DefaultDatabase.Tables);
MyGeneration工具开发.Net Script模板_Script_06                cboTables.Top 
= 50; cboTables.Left = 10; cboTables.Width =  200;
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06                btnOk.Text 
= "Ok";
MyGeneration工具开发.Net Script模板_Script_06                btnOk.Top 
= 100; btnOk.Left = 10; btnOk.Width = 200;
MyGeneration工具开发.Net Script模板_Script_06                btnOk.Click 
+= new EventHandler(btnOk_Click);
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_MyGeneration_05                
this.Controls.AddRange( new Control[] {cboDatabases, cboTables, btnOk} );
MyGeneration工具开发.Net Script模板_Script_06                
this.Text = ".NetScript C# Sample: Java Class";
MyGeneration工具开发.Net Script模板_Script_06                
this.Width = 230;
MyGeneration工具开发.Net Script模板_Script_06                
this.Height = 160;
MyGeneration工具开发.Net Script模板_MyGeneration_13        }

MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06        
public void cboDatabases_SelectedIndexChanged(object sender, EventArgs args) 
MyGeneration工具开发.Net Script模板_MyGeneration_05        
{
MyGeneration工具开发.Net Script模板_Script_06                
this.BindComboBox(
MyGeneration工具开发.Net Script模板_Script_06                                cboTables, 
MyGeneration工具开发.Net Script模板_Script_06                                meta.Databases[ cboDatabases.SelectedItem.ToString() ].Tables 
MyGeneration工具开发.Net Script模板_Script_06                        );
MyGeneration工具开发.Net Script模板_MyGeneration_13        }

MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06        
public void btnOk_Click(object sender, EventArgs args) 
MyGeneration工具开发.Net Script模板_MyGeneration_05        
{
MyGeneration工具开发.Net Script模板_Script_06                
if ((cboDatabases.SelectedIndex >= 0&&
MyGeneration工具开发.Net Script模板_Script_06                        (cboTables.SelectedIndex 
>= 0)) 
MyGeneration工具开发.Net Script模板_MyGeneration_05                
{
MyGeneration工具开发.Net Script模板_Script_06                        input[
"databaseName"= cboDatabases.SelectedItem.ToString();
MyGeneration工具开发.Net Script模板_Script_06                        input[
"tableName"= cboTables.SelectedItem.ToString();
MyGeneration工具开发.Net Script模板_Script_06                        
this.DialogResult = DialogResult.OK;
MyGeneration工具开发.Net Script模板_Script_06                        
this.Close();
MyGeneration工具开发.Net Script模板_MyGeneration_13                }

MyGeneration工具开发.Net Script模板_Script_06                
else 
MyGeneration工具开发.Net Script模板_MyGeneration_05                
{
MyGeneration工具开发.Net Script模板_Script_06                        MessageBox.Show(
"Fill out the required fields.. PLEASE??");
MyGeneration工具开发.Net Script模板_MyGeneration_13                }

MyGeneration工具开发.Net Script模板_MyGeneration_13        }

MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06        
private void BindComboBox(ComboBox cbo, IEnumerable myMetaCollection)
MyGeneration工具开发.Net Script模板_MyGeneration_05        
{
MyGeneration工具开发.Net Script模板_Script_06                cbo.Items.Clear();
MyGeneration工具开发.Net Script模板_Script_06                
foreach (INameValueItem item in myMetaCollection)
MyGeneration工具开发.Net Script模板_MyGeneration_05                
{
MyGeneration工具开发.Net Script模板_Script_06                        cbo.Items.Add(item.ItemValue);
MyGeneration工具开发.Net Script模板_MyGeneration_13                }

MyGeneration工具开发.Net Script模板_MyGeneration_13        }

MyGeneration工具开发.Net Script模板_MyGeneration_16 }

MyGeneration工具开发.Net Script模板_模板_02

 

模板主体

模板主体是生成代码的主要执行地。下面讲解了我如何生成代码的步骤。

1、将期望输出的代码放入到Render的方法中如下的代码,你将看到我将要生成的类。这几乎都是当我要生成一个模板是必做的第一件事情。

MyGeneration工具开发.Net Script模板_模板_02<%
MyGeneration工具开发.Net Script模板_模板_02 
public class GeneratedTemplate : DotNetScriptTemplate
MyGeneration工具开发.Net Script模板_模板开发_04 
{
MyGeneration工具开发.Net Script模板_MyGeneration_05        
public GeneratedTemplate(ZeusContext context) : base(context) {}
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06        
public override void Render()
MyGeneration工具开发.Net Script模板_MyGeneration_05        
{
MyGeneration工具开发.Net Script模板_Script_06                
string databaseName = input["databaseName"].ToString();
MyGeneration工具开发.Net Script模板_Script_06                
string tableName = input["tableName"].ToString();
MyGeneration工具开发.Net Script模板_Script_06 
%>
MyGeneration工具开发.Net Script模板_MyGeneration_05
/*
MyGeneration工具开发.Net Script模板_Script_06 * Employee.java
MyGeneration工具开发.Net Script模板_Script_06 *
MyGeneration工具开发.Net Script模板_Script_06 * Created on September 23, 2002, 12:59 PM
MyGeneration工具开发.Net Script模板_MyGeneration_13 
*/

MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06 package com.mygeneration.sample;
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06 import java.sql.
*;
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06 import com.mygeneration.businessobjects.
*;
MyGeneration工具开发.Net Script模板_Script_06 import com.mygeneration.dataaccess.
*;
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06 
public class Employee extends BizObj
MyGeneration工具开发.Net Script模板_MyGeneration_05 
{
MyGeneration工具开发.Net Script模板_Script_06    
public Employee() 
MyGeneration工具开发.Net Script模板_MyGeneration_05    
{
MyGeneration工具开发.Net Script模板_MyGeneration_13    }

MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06    
// EmployeeID
MyGeneration工具开发.Net Script模板_Script_06
    public String getEmployeeID()
MyGeneration工具开发.Net Script模板_MyGeneration_05    
{
MyGeneration工具开发.Net Script模板_Script_06        
return getString(EmployeeSchema.EmployeeID.getFieldName());
MyGeneration工具开发.Net Script模板_MyGeneration_13    }

MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06    
public void setEmployeeID(String employeeID)
MyGeneration工具开发.Net Script模板_MyGeneration_05    
{
MyGeneration工具开发.Net Script模板_Script_06        setString(EmployeeSchema.EmployeeID.getFieldName(), employeeID);
MyGeneration工具开发.Net Script模板_MyGeneration_13    }
    
MyGeneration工具开发.Net Script模板_MyGeneration_13 }
<%
MyGeneration工具开发.Net Script模板_MyGeneration_13        }

MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_MyGeneration_16 }

MyGeneration工具开发.Net Script模板_模板_02 
%>
MyGeneration工具开发.Net Script模板_模板_02

2、添加动态代码把动态的代码添加到模板中,替换掉类名、属性名称以及数据类型。

MyGeneration工具开发.Net Script模板_模板_02<%
MyGeneration工具开发.Net Script模板_模板_02 
public class GeneratedTemplate : DotNetScriptTemplate
MyGeneration工具开发.Net Script模板_模板开发_04 
{
MyGeneration工具开发.Net Script模板_MyGeneration_05        
public GeneratedTemplate(ZeusContext context) : base(context) {}
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06        
public override void Render()
MyGeneration工具开发.Net Script模板_MyGeneration_05        
{
MyGeneration工具开发.Net Script模板_Script_06                
string databaseName = input["databaseName"].ToString();
MyGeneration工具开发.Net Script模板_Script_06                
string tableName = input["tableName"].ToString();
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06                IDatabase database 
= MyMeta.Databases[databaseName];
MyGeneration工具开发.Net Script模板_Script_06                ITable table 
= database.Tables[tableName];
MyGeneration工具开发.Net Script模板_MyGeneration_05 
%>/*
MyGeneration工具开发.Net Script模板_Script_06 * <%= table.Alias %>.java
MyGeneration工具开发.Net Script模板_Script_06 *
MyGeneration工具开发.Net Script模板_Script_06 * Created on <%= DateTime.Now.ToString() %>
MyGeneration工具开发.Net Script模板_MyGeneration_13 
*/

MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06 package com.mygeneration.sample;
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06 import java.sql.
*;
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06 import com.mygeneration.businessobjects.
*;
MyGeneration工具开发.Net Script模板_Script_06 import com.mygeneration.dataaccess.
*;
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06 
public class <%= table.Alias %> extends BizObj
MyGeneration工具开发.Net Script模板_MyGeneration_05 
{
MyGeneration工具开发.Net Script模板_Script_06    
public <%= table.Alias %>() 
MyGeneration工具开发.Net Script模板_MyGeneration_05    
{
MyGeneration工具开发.Net Script模板_MyGeneration_13    }

MyGeneration工具开发.Net Script模板_Script_06 
<%
MyGeneration工具开发.Net Script模板_Script_06                
foreach (IColumn column in table.Columns)
MyGeneration工具开发.Net Script模板_MyGeneration_05                
{
MyGeneration工具开发.Net Script模板_Script_06                        
string datatype = this.GetJavaType(column);
MyGeneration工具开发.Net Script模板_Script_06 
%>    
MyGeneration工具开发.Net Script模板_Script_06    
// <%= column.Alias %>
MyGeneration工具开发.Net Script模板_Script_06
    public <%= datatype %> get<%= column.Alias %>()
MyGeneration工具开发.Net Script模板_MyGeneration_05    
{
MyGeneration工具开发.Net Script模板_Script_06        
return get<%= datatype %>(<%= table.Alias %>Schema.<%= column.Alias %>.getFieldName());
MyGeneration工具开发.Net Script模板_MyGeneration_13    }

MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06    
public void set<%= column.Alias %>(<%= datatype %> m_<%= column.Alias %>)
MyGeneration工具开发.Net Script模板_MyGeneration_05    
{
MyGeneration工具开发.Net Script模板_Script_06        
set<%= datatype %>(<%= table.Alias %>Schema.<%= column.Alias %>.getFieldName(), m_<%= column.Alias %>);
MyGeneration工具开发.Net Script模板_MyGeneration_13    }

MyGeneration工具开发.Net Script模板_Script_06 
<%
MyGeneration工具开发.Net Script模板_MyGeneration_13                }

MyGeneration工具开发.Net Script模板_Script_06 
%>    
MyGeneration工具开发.Net Script模板_MyGeneration_13 }
<%
MyGeneration工具开发.Net Script模板_MyGeneration_13        }

MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06        
private string GetJavaType(IColumn column)
MyGeneration工具开发.Net Script模板_MyGeneration_05        
{
MyGeneration工具开发.Net Script模板_Script_06                
string sqlServerType = column.DataTypeName;
MyGeneration工具开发.Net Script模板_Script_06                
int charLength = column.CharacterMaxLength;
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06
MyGeneration工具开发.Net Script模板_Script_06                
switch (sqlServerType) 
MyGeneration工具开发.Net Script模板_MyGeneration_05                
{
MyGeneration工具开发.Net Script模板_Script_06                        
case "bit":
MyGeneration工具开发.Net Script模板_Script_06                                
return "Boolean";
MyGeneration工具开发.Net Script模板_Script_06                        
case "decimal":
MyGeneration工具开发.Net Script模板_Script_06                        
case "float":
MyGeneration工具开发.Net Script模板_Script_06                        
case "numeric":
MyGeneration工具开发.Net Script模板_Script_06                        
case "money":
MyGeneration工具开发.Net Script模板_Script_06                        
case "smallmoney":
MyGeneration工具开发.Net Script模板_Script_06                        
case "real":
MyGeneration工具开发.Net Script模板_Script_06                                
return "Decimal";
MyGeneration工具开发.Net Script模板_Script_06                        
case "tinyint":
MyGeneration工具开发.Net Script模板_Script_06                        
case "smallint":
MyGeneration工具开发.Net Script模板_Script_06                        
case "int":
MyGeneration工具开发.Net Script模板_Script_06                        
case "bigint":
MyGeneration工具开发.Net Script模板_Script_06                                
return "Integer";
MyGeneration工具开发.Net Script模板_Script_06                        
case "smalldatetime":
MyGeneration工具开发.Net Script模板_Script_06                        
case "datetime":
MyGeneration工具开发.Net Script模板_Script_06                                
return "Timestamp";
MyGeneration工具开发.Net Script模板_Script_06                        
case "varchar":
MyGeneration工具开发.Net Script模板_Script_06                        
case "char":
MyGeneration工具开发.Net Script模板_Script_06                        
case "nvarchar":
MyGeneration工具开发.Net Script模板_Script_06                        
case "nchar":
MyGeneration工具开发.Net Script模板_Script_06                        
case "text":
MyGeneration工具开发.Net Script模板_Script_06                                
if (charLength == 1)
MyGeneration工具开发.Net Script模板_Script_06                                        
return "Character";
MyGeneration工具开发.Net Script模板_Script_06                                
else
MyGeneration工具开发.Net Script模板_Script_06                                        
return "String";
MyGeneration工具开发.Net Script模板_Script_06                        
default:
MyGeneration工具开发.Net Script模板_Script_06                                
return "Object";
MyGeneration工具开发.Net Script模板_MyGeneration_13                }

MyGeneration工具开发.Net Script模板_MyGeneration_13        }

MyGeneration工具开发.Net Script模板_MyGeneration_16 }

MyGeneration工具开发.Net Script模板_模板_02 
%>
MyGeneration工具开发.Net Script模板_模板_02

总结

使用 DotNetScript ,你将会把 MyGeneration 的模板开发提升到一个新的水平,提供更强大的功能以及能开发更复杂的系统