一、基础模版类CodeSmith.BaseTemplates
1.1 Batch
1.1.1 属性
| 名称 |
说明 |
| Content |
|
| LineCount |
|
| StartLineNumber |
|
1.1.2 方法
| 名称 |
说明 |
| Finalize |
在一个对象再次创建之前获得空闲资源并且执行其他的清空操作 |
| MemberwiseClone |
建立现有对象的副本 |
1.2 OutputFileCodeTemplate
模版通过继承此类能够在生成过程中把他们的输出保存到文件中
1.2.1 属性
| 名称 |
说明 |
| CodeTemplateInfo |
得到当前模版的信息 |
| OutputFile |
此属性用来指定一个保存模版输出的输出文件名 |
| Progress |
提供一种方式汇报模版的执行进程 |
| Response |
模版输出返回流。此属性可以在程序中写出流 |
| State |
模版实例的状态 |
| ValidationErrors |
得到模版的错误 |
1.2.2 方法
| 名称 |
说明 |
| CopyPropertiesTo |
把匹配的属性拷贝到另一个代码模版实例中 |
| GetCodeTemplateInstance |
重载,得到指定模版的实例 |
| GetFileName |
为模版的输出得到一个默认的名字 |
| GetProperties |
得到模版的所有属性 |
| GetProperty |
得到模版的指定属性 |
| GetRequiredProperties |
得到模版上所有必要的属性 |
| GetType |
得到当前实例类型 |
| ParseDefaultValue |
解析属性的默认值 |
| SavePropertiesToXml |
以XML保存属性 |
| SavePropertiesToXmlFile |
保存属性到一个XML文档 |
| SetProperty |
重载,保存指定的属性值 |
| ToString |
|
1.3 ScriptError
在脚本执行中出现一个错误
1.3.1 方法
| 名称 |
说明 |
| Finalize |
在一个对象再次创建之前获得空闲资源并且执行其他的清空操作 |
| MemberwiseClone |
建立现有对象的副本 |
1.4 ScriptErrorCollection
1.5 ScriptResult
1.6 ScriptUtility
这个类能用来在数据库上执行Sql脚本。
1.6.1 属性
| 名称 |
说明 |
| ConnectionString |
执行脚本时使用此连接字符串 |
| Script |
执行的脚本 |
1.6.2 方法
| 名称 |
说明 |
| ExecuteScript |
重载,执行脚本 |
1.7SqlCodeTemplate
继承此类的模版当从一个Sql数据源生成代码时能够获得很多有用的帮助方法
1.7.1 属性
| 名称 |
说明 |
| CodeTemplateInfo |
得到当前模版的信息 |
| OutputFile |
此属性用来指定一个保存模版输出的输出文件名 |
| Progress |
提供一种方式汇报模版的执行进程 |
| Response |
模版输出返回流。此属性可以在程序中写出流 |
| State |
模版实例的状态 |
| ValidationErrors |
得到模版的错误 |
1.7.2 方法
| 名称 |
说明 |
| CopyPropertiesTo |
把匹配的属性拷贝到另一个代码模版实例中 GetCamelCaseName Returns a camel cased name from the given identifier. |
| GetCodeTemplateInstance |
重载,得到指定模版的实例 |
| GetCSharpVariableType |
基于给定列返回C#的变量类型 |
| GetFileName |
为模版的输出得到一个默认的名字 |
| GetMemberVariableDeclarationStatement |
重载,返回C#成员变量声明语句 |
| GetMemberVariableDefaultValue |
基于一个列的数据类型返回一个默认值 |
| GetMemberVariableName |
为一个给定标示返回一个C#成员变量名 |
| GetProperties |
得到模版的所有属性 |
| GetProperty |
得到模版的指定属性 |
| GetPropertyName |
返回指定列的公有属性的名字 |
| GetReaderMethod |
Returns the name of the typed reader method for a given column. |
| GetRequiredProperties |
得到模版上所有必要的属性 |
| GetSpacedName |
Returns a spaced out version of the identifier. |
| GetSqlDbType |
返回一个给定列的SqlDbType |
| GetSqlParameterExtraParams |
为ADO的参数声明生成额外的参数 |
| GetSqlParameterStatement |
重载,返回给定列的T-Sql的参数声明 |
| GetSqlParameterStatements
|
重载,给指定列加一个参数到ADO对象生成一个指定声明(Generates an assignment statement that adds a parameter to a ADO object for the given column. ) |
| GetValidateStatements |
基于某列生成一组确认声明 |
| IncludeEmptyCheck |
确定一个给定列是否可以为空 |
| IncludeMaxLengthCheck |
确定一个给定列的类型是否需要最大长度的定义 |
| IsUserDefinedType |
确定是否一个给定列用了一个UDT(用户定义类型) |
| ParseDefaultValue |
解析属性的默认值 |
| SavePropertiesToXml |
以XML保存属性 |
| SavePropertiesToXmlFile |
保存属性到一个XML文档 |
| SetProperty |
重载,保存指定的属性值 |
1.8 StringUtility
多种处理string型的方法
二、数据库架构信息SchemaExplorer
2.1 DatabaseSchem
2.1.1 属性
| 名称 |
说明 |
| ConnectionString |
一般填写类似于ADO.NET的连接字符串 |
| Name |
数据库名称 |
| Provider |
驱动程序提供者,一般实例化一个SqlSchemaProvider对象 |
2.1.2 集合
| 名称 |
说明 |
| Commands |
所有存储过程集合 |
| Tables |
所有表的集合 |
| Views |
所有视图的集合 |
2.2 TableSchema
2.2.1 属性
| 名称 |
说明 |
| Name |
表名 |
| Database |
所在数据库 |
| DataCreated |
创建日期 |
| FullName |
全名 |
| HasPrimaryKey |
是否有主键 |
| Owner |
所有者 |
| PrimaryKey |
主键信息 |
2.2.2 方法
| 名称 |
说明 |
| GetTableData |
获取表中所有数据,结果为DataTable |
2.2.3 集合
| 名称 |
说明 |
| Columns |
所有列集合 |
| ForeignKeyColumns |
所有外键列的集合 |
| ForeignKeys |
外键信息的集合(有外键关系的外键信息) |
| Indexes |
所有索引的信合 |
| Keys |
所有主键和外键的列的集合 |
| NonKeyColumns |
所有非主键外键列的集合 |
| NonForeignKeyColumns |
所有非外键列的集合 |
| NonPrimaryKeyColumns |
所有非主键列的集合 |
| PrimaryKeys |
主键信息的集合(有外键关系的主键信息) |
2.3 CommandSchema
2.3.1 属性
| 名称 |
说明 |
| Name |
存储过程名 |
| FullName |
全名 |
| Database |
所在数据库 |
| DataCreated |
创建日期 |
| Owner |
所有者 |
| ReturnValueParameter |
返回值参数,SQLSERVER中似乎取不到 |
| CommandText |
存储过程的内容源代码 |
2.3.2 集合
| 名称 |
说明 |
| AllInputParameters |
所有的输入参数集合,有可能包括即是输入又是输出的参数 |
| AllOutputParameters |
所有输出参数的集合,有可能包括即是输入又是输出的参数 |
| CommandResults |
存储过程的查询结果集合 |
| InputOutputParameters |
输入输出参数的集合 |
| InputParameters |
所有输入参数的集合 |
| OutputParameters |
所有输出参数的集合 |
| Parameters |
所有参数的集合 |
| NonReturnValueParameters |
除了返回值之外的参数的集合 |
2.4 ViewSchema
2.4.1 属性
| 名称 |
说明 |
| Name |
视图名 |
| FullName |
视图全名 |
| Database |
所在数据库 |
| DataCreated |
创建日期 |
| Owner |
所有者 |
| ViewText |
视图源代码 |
2.4.2 方法
| 名称 |
说明 |
| GetViewData |
得到视图中的数据,返回类型为DataTable |
2.4.3 集合
| 名称 |
说明 |
| Columns |
视图中所有列的集合 |
2.5 ColumnSchema
2.5.1 属性
| 名称 |
说明 |
| Name |
列的名称 |
| NonDBNull |
是否允许为空 |
| Database |
所在数据库 |
| DataType |
内部表示的数据类型 |
| Description |
列说明信息 |
| IsForeignKeyMember |
是否为外键 |
| IsPrimaryKeyMember |
是否为主键,通用 |
| IsUnique |
是否唯一 |
| NativeType |
数据库中的数据类型 |
| Precision |
精度 |
| Scale |
小数位数 |
| Size |
列的长度 |
| SystemType |
当前列在所用语言中的类型 |
| Table |
所在的表 |
2.6 ParameterSchema
参数结构
2.6.1 属性
| 名称 |
说明 |
| Name |
参数名称 |
| NonDBNull |
是否为空 |
| Command |
所在存储过程名 |
| Database |
所在数据库 |
| Direction |
参数的类型:输入,输出,输入输出,返回值 |
| NativeType |
数据库中的数据类型 |
| Size |
长度 |
| Precision |
精度 |
| Scale |
小数位数 |
| SystemType |
当前列在所用语言中的类型 |
2.7 ViewColumnSchema
视图列的结构
2.7.1 属性
| 名称 |
说明 |
| Name |
视图的名称 |
| NonDBNull |
是否为空 |
| View |
所在的视图 |
| Database |
所在的数据库 |
| NativeType |
SqlServer中的类型 |
| Size |
长度 |
| Precision |
精度 |
| Scale |
小数位数 |
| SystemType |
当前列在所用语言中的类型 |
2.8 TableKeySchema
表中键结构
2.8.1 属性
| 名称 |
说明 |
| Name |
表的键的名称,即约束名称 |
| Database |
所在数据库 |
| ForeignKeyTable |
有外键的表,即子表 |
| PrimaryKeyTable |
主键表,即主表 |
| PrimaryKey |
主表的主键信息 |
2.8.2 集合
| 名称 |
说明 |
| PrimaryKeyMemberColumns |
当前键信息中主键的成员列集合,即主表中的主键的列的集合 |
| ForeignKeyMemberColumns |
当前键信息中外键的成员列集合,即子表中某个外键的列集合 |
2.9 IndexSchema
索引的结构
2.9.1 属性
| 名称 |
说明 |
| Name |
索引名称 |
| Table |
所在表 |
| DataBase |
所在数据库 |
| Is |
是否聚集索引 |
| IsPrimaryKey |
是否为主键索引 |
| IsUnique |
是否为唯一索引 |
2.9.2 集合
| 名称 |
说明 |
| MemberColumns |
索引的列集合 |
2.10 ExtendedProperty
扩展信息
2.10.1 Table
| 名称 |
说明 |
| CS_isIdentity: |
是否为标识符,不支持Access |
| CS_isComputed |
是否为计算列 |
| CS_isDeterministic |
是否确定 |
| CS_IdentitySeed |
标识列种子数 |
| CS_IdentityIncrement: |
标识列递增量 |
| CS_Default |
列的默认值 |
| CS_isRowGuidCol |
|
2.10.2 View
| 名称 |
说明 |
| CS_isIdentity: |
是否为计算列 |
| CS_isDeterministic |
是否确定 |
2.10.3 Command
| 名称 |
说明 |
| CS_Default |
存储过程的默认参数 |
小示例:
<% foreach(TableKeySchema PrimaryKey in table.PrimaryKeys) %> <% { %> <%= PrimaryKey %> //FK_Article_Column(外键名称) <%= PrimaryKey.PrimaryKey %> //PK_Column(外键关系中的主键) <%= PrimaryKey.PrimaryKeyTable %> //dbo.Column (有主外键关系且为主键的表) <%= PrimaryKey.ForeignKeyTable %> //dbo.Article (有主外键关系且作为外键的表) <% foreach(MemberColumnSchema MemberColumn in PrimaryKey.PrimaryKeyMemberColumns) %> <% { %> <%= PrimaryKey.ForeignKeyTable %> //dbo.Article <%= PrimaryKey.ForeignKeyTable.ForeignKeyColumns %> //dbo.Article.ColumnId <% } %> <% } %>
