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