一、基础模版类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 <% } %> <% } %>