一、基礎模版類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 <% } %> <% } %>