CodeSmith----SchemaExplorer類結構詳細介紹
CodeSmith與資料庫的聯絡,在CodeSmith中內建一個程式集SchemaExplorer.dll,這個程式集中的類主要用於擷取資料庫中各種對象的結構。
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Default="" Optional="False" Category="Context" Description="源表名" %>
<%@ Property Name="SourceDB" Type="SchemaExplorer.DatabaseSchema" Default="" Optional="False" Category="Context" Description="" OnChanged="" Editor="" EditorBase="" Serializer="" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
SchemaExplorer中主要類的結構和功能:
DatabaseSchema
屬性:
ConnectionString:一般填寫類似於ADO.NET的連接字串
Name:資料庫名稱
Provider:驅動程式提供者,一般執行個體化一個SqlSchemaProvider對象
集合:
Commands:所有預存程序集合
Tables:所有表的集合
Views:所有視圖的集合
TableSchema
屬性:
Name:表名
Database:所在資料庫
DataCreated:建立日期
FullName:全名
HasPrimaryKey:是否有主鍵
Owner:所有者
PrimaryKey:主鍵資訊
方法:GetTableData:擷取表中所有資料,結果為DataTable
集合:
Columns:所有列集合
ForeignKeyColumns:所有外鍵列的集合
ForeignKeys:外鍵資訊的集合
Indexes:所有索引的信合
Keys:所有主鍵和外鍵的列的集合
NonKeyColumns:所有非主鍵外鍵列的集合
NonForeignKeyColumns:所有非外鍵列的集合
NonPrimaryKeyColumns:所有非主鍵列的集合
PrimaryKeys:主鍵資訊的集合
CommandSchema預存程序結構
屬性:
Name:預存程序名
FullName:全名
Database:所在資料庫
DataCreated:建立日期
Owner:所有者
ReturnValueParameter:傳回值參數,SQLSERVER中似乎取不到
CommandText:預存程序的內容來源代碼
集合:
AllInputParameters:所有的輸入參數集合,有可能包括即是輸入又是輸出的參數
AllOutputParameters:所有輸出參數的集合,有可能包括即是輸入又是輸出的參數
CommandResults:預存程序的查詢結果集合
InputOutputParameters:輸入輸出參數的集合
InputParameters:所有輸入參數的集合
OutputParameters:所有輸出參數的集合
Parameters:所有參數的集合
NonReturnValueParameters:除了傳回值之外的參數的集合
ViewSchema視圖結構
屬性:
Name:視圖名
FullName:視圖全名
Database:所在資料庫
DataCreated:建立日期
Owner:所有者
ViewText:視圖原始碼
方法:GetViewData:得到視圖中的資料,傳回型別為DataTable
集合:Columns:視圖中所有列的集合
ColumnSchema列結構
屬性:
Name:列的名稱
NonDBNull:是否允許為空白
Database:所在資料庫
DataType:內部表示的資料類型
IsForeignKeyMember:是否為外鍵
IsPrimaryKeyMember:是否為主鍵,通用
IsUnique:是否唯一
NativeType:資料庫中的資料類型
Precision:精度
Scale:小數位元
Size:列的長度
SystemType:當前列在所用語言中的類型
Table:所在的表
ParameterSchema參數結構
屬性:
Name:參數名稱
NonDBNull:是否為空白
Command:所在預存程序名
Database:所在資料庫
Direction:參數的類型:輸入,輸出,輸入輸出,傳回值
NativeType:資料庫中的資料類型
Size:長度
Precision:精度
Scale:小數位元
SystemType:當前列在所用語言中的類型
ViewColumnSchema視圖列的結構
屬性:
Name:視圖的名稱
NonDBNull:是否為空白
View:所在的視圖
Database:所在的資料庫
NativeType:SqlServer中的類型
Size:長度
Precision:精度
Scale:小數位元
SystemType:當前列在所用語言中的類型
TableKeySchema表中鍵結構
屬性:
Name:表的鍵的名稱,即約束名稱
Database:所在資料庫
ForeignKeyTable:有外鍵的表,即子表
PrimaryKeyTable:主鍵表,即主表
PrimaryKey:主表的主鍵資訊
集合:
PrimaryKeyMemberColumns:當前鍵資訊中主鍵的成員列集合,即主表中的主鍵的列的集合
ForeignKeyMemberColumns:當前鍵資訊中外鍵的成員列集合,即子表中某個外鍵的列集合
IndexSchema索引的結構
屬性:
Name:索引名稱
Table:所在表
DataBase:所在資料庫
Is:是否叢集索引
IsPrimaryKey:是否為主鍵索引
IsUnique:是否為唯一索引
集合:MemberColumns:索引的列集合
ExtendedProperty擴充資訊
Table:
CS_isIdentity:是否為標識符,不支援Access
CS_isComputed:是否為計算資料行
CS_isDeterministic:是否確定...
CS_IdentitySeed::識別欄位種子數
CS_IdentityIncrement:識別欄位遞增量
CS_Default:列的預設值
CS_isRowGuidCol
View:
CS_isComputed:是否為計算資料行
CS_isDeterministic:
Command:
CS_Default:預存程序的預設參數