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:存储过程的默认参数



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhaili1978/archive/2008/10/28/3167532.aspx

posted on 2012-09-21 16:02 sanmao 阅读(608) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 

常用链接

留言簿(4)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜