摘要:
1: 自增列 类型为:int identity(1,1) 当然也可以是bigint,smallint eg: create table tbName(id int identity(1,1),description varchar(20)) 或在用企业管理器设计表字段时,将字段设为int,将标识设为是,... 阅读全文
摘要:
基础模版类类型描述: Batch OutputFileCodeTemplate 模版通过继承此类能够在生成过程中把他们的输出保存到文件中 ScriptError 在脚本执行中出现一个错误ScriptErrorCollection ScriptResult 一个脚本的运行结果包含一些已经发生的错误ScriptUtility 这个类能用来在数据库上执行Sql脚本。Sq... 阅读全文
摘要:
在CodeSmith中,以下几个快捷键有助于我们快速输入。 1.Ctrl + Shift + C 在空行上,按下Ctrl + Shift + C后将会录入一个代码块。 2.Ctrl + Shift + Q 按下Ctrl + Shift + Q后录入一个脚本块。 3.Ctrl + Shift + V 对代码块反转,如有下面这样一行代码: 在两个大括号之间按下Ctrl + Shift + ... 阅读全文
摘要:
Progress对象可以在CodeSmith生成代码时给用户显示一个进度条,当生成代码的时间很长时非常有用。如果你使用的是CodeSmith Explorer,进度条将显示在Generate按钮的左边: 如果使用的是CodeSmith Studio,进度条将显示在状态栏上: 使用Progress和在WinForm中使用进度条差不多,需要设置它的最大值和步长: this.Progress.Max... 阅读全文
摘要:
在CodeSmith中使用CodeTemplateInfo可以获取当前模版的一些信息: 属性 返回值 CodeBehind Gets the full path to the code-behind file for the template (or an empty string if there is no code-behind file). ContentHash... 阅读全文
摘要:
在CodeSmith中,如果生成的代码是SQL脚本,则可以在生成代码完成时自动执行生成的代码,也就是在生成的SQL脚本的同时在数据库中创建新的对象。 用BaseTemplates.ScriptUtility对象提供ExecuteScript方法可以实现,如果想在生成代码完成后立即执行生成的脚本,可以很方便的通过重载OnPostRender来实现。 在使用之前,先添加对下列程序集的引用: 看下面... 阅读全文
摘要:
如果你需要提供一个复杂的组合用户界面来输入元数据,这时就要添加设计器的支持。换句话说,除此之外没有别的办法来输入你自定义的元数据类型。添加设计器的支持,首先你要创建一个Editor作为自定义的类型,一个Editor其实就一个继承于.NET 中的System.Drawing.Design.UITypeEditor类的子类。 安装CodeSmith后在,在C:\Program File\CodeSm... 阅读全文
摘要:
CodeSmith在执行模版时通过调用一些API来完成的,主要经过了以下这几步的操作: l 编译一个模版 l 显示编译错误信息 l 创建一个新的模版实例 l 用元数据填充模版 l 输出结果 下面这段代码显示了这些操作: CodeTemplateCompiler compiler = new CodeTemplate... 阅读全文
摘要:
在CodeSmith中,CodeTemplate.Render方法是在模版执行完成进行模版输出时执行,你可以通过重载CodeTemplate.Render方法来修改CodeSmith输出时的事件处理。例如:你可以修改模版输出时的方式来代替现在默认的方式,下面这段代码展示了在保持CodeSmith默认的窗口显示的同时,把结果输出到两个不同的文件。 1 2 3This template demon... 阅读全文
摘要:
在CodeSmith中,要把生成的代码文件输出到文件中,你需要在自己的模版中继承OutputFileCodeTemplate类。 OutputFileCodeTemplate主要做两件事情: 1.它添加一个名为OutputFile的属性到你的模版中,该属性要求你必须选择一个文件; 2.模版重载了方法OnPostRender(),在CodeSmith生成代码完成后把相应的内容写入到指定的文件中去。... 阅读全文
摘要:
在使用CodeSmith进行代码生成的时候,你可能需要在子模版和父模版之间共享属性。比如,写一个基于数据库生成代码的模版,在每个模版里面都定义了一个名为Server的属性。当你在父模版中使用此属性时,它的值只对父模版起作用。想要设置此值到子模版,可以在父模版中使用CopyPropertiesTo方法,当在父模版中使用此属性时,它的值会发送到子模版中去。下面这段代码展示了如何使用该方法: // ... 阅读全文
摘要:
CodeSmith允许我们存储元数据在XML文件中,然后在执行模版时直接打开XML文件填写到属性面板中。 1.XML Property With a Schema 1 2 6 7 8 9 10 11 12 13 14 15 16 ... 阅读全文
摘要:
用CodeSmith生成可变化的代码,其实是先利用CodeSmith生成一个基类,然后自定义其它类继承于该类。当我们重新生成基类时CodeSmith不要接触继承的子类中的代码。看下面的这段模版脚本: class { m_; public ( ) { m_ = }} 执行该模版并输入如下数据: 该模版生成的代码可能如下: 1class Accoun... 阅读全文
摘要:
SchemaExplorer允许我们获取数据库中一些对象的信息。如果你使用的是SQL Server2000数据库,你可以通过扩展属性获取很多对象的有用的信息。例如:SQL Server定义了一个扩展属性来标识表中的唯一标识字段,在模版中可以这样写: Identity Field = CodeSmith定义的扩展属性包括table columns, view columns, 和 command... 阅读全文
摘要:
使用FileDialogAttribute可以设置FileNameEditor中的属性,基本成员如下: 属性 描述 默认值 FileDialogType Save or Open FileDialogType.Save Filter Filter string for file extensions All Files (*.*)|*.* Title Dialo... 阅读全文
摘要:
FileNameEditor类给我们提供了在CodeSmith属性面板中弹出打开或保存文件对话框的方式,在使用时,首先在模版中得添加对程序集CodeSmith.CustomProperties的引用。然后就可以在模版中定义一个属性来使用FileNameEditor: 12425 当我们执行该模版时,在属性面板中同样显示为一个按钮: 单击该按钮,弹出一个保存文件的对话框: 我们也可以通过... 阅读全文
摘要:
StringCollection提供了一种集合的输入方式,在代码中,可以用Array的方式来引用。在使用这个类之前,在模版中我们必须添加对CodeSmith.CustomProperties程序集的引用: 添加完程序集之后,我们就可以使用StringCollection在脚本块中定义一个属性: 执行该模版时,这个属性将在属性窗体中显示为一个按钮: 单击按钮,将会弹出一个String Col... 阅读全文
摘要:
编写CodeSmith自定义属性的编辑器(Writing Custom Property Editors) 当你开始编写自定义的CodeSmith模板时,很可能对于使用它的strings或integers属性很满意,但有时你会发现需要创建一个不同类型的属性,可能是一个自定义的类型或者是.NET framework中但是在属性面板中没有提供的类型。在模板中去作这些很简单,但是怎样指定... 阅读全文
摘要:
本文翻译的内容为CodeSmith控制台指南。 很多人仅仅知道CodeSmith像一个图形应用程序,或者可能是一个Visual Studio的附件,但是通过CodeSmith的控制台应用程序还有好多其他的使用方法。控制台应用程序是很有价值的,因为可以通过它去生成脚本,或者其他一些自动工具。这篇文档的目的就是要告诉你怎样使用它的控制台应用程序并且如何去定义变量和参数。 Basic Usage 大多... 阅读全文
摘要:
本文主要介绍CodeSmith对象。 CodeSmith Object CodeSimth中有许多对象可以在编写模板的时候使用,这里将介绍这些对象的一些公用方法和属性以及怎么使用它们。 代码模板对象(CodeTemplate Object)在模板中,“this”(或者“Me”在VB.NET中)在当前模板中代码代码模板对象。 代码模板的方法(CodeTemplate M... 阅读全文