CodeSmith--SchemaExplorer类结构详细介绍

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

转载于:https://www.cnblogs.com/silverLee/archive/2009/11/05/1596759.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue element项目常见实现表格内部可编辑功能

目录 前言 正文 1.简单表格行内内部可编辑 2. 数据从后端取得表格行内可编辑 3.批量表格整体的可编辑 结语 前言 后台系统都是各种表格表单编辑&#xff0c;整理了下常见的几种实现表格编辑的方式&#xff0c;希望有用。使用框架&#xff1a;vueelement 表格行内内部可编辑 数…

tar

tar命令是Unix的一个shell命令&#xff0c;该命令可在为多个制定文件创建一个档案文件&#xff0c;也可以从一个档案文件中解压缩出文件。tar档案文件的扩展名为“.tar”。tar包中的文件并不是压缩文件&#xff0c;而是所有文件集合成的一个文件。 tar这个名字源自在磁带上备份…

Yii2.0 技巧总结

View部分 1. 使用ActiveField中的hint生成提示文字 <? $form->field($model, freightAddedFee)->textInput()->hint(大于0的整数) ?> 2. 文本框添加placeholder属性&#xff0c;其实这个本来就是html5带的属性。 <? $form->field($model, mobile, $inp…

React开发(157):一级直接用getFieldDecorator

<Row gutter{12}><Col span{12}><Form.Item label"省/市/区">{getFieldDecorator(proviceValue, {initialValue: proviceValue,rules: [{ required: true, message: 公司人数不能为空 }],})(<CascaderfieldNames{fieldNames}options{options}on…

【JavaScript】appendChild一个的注意点之会删除原dom树节点

最近在研究学习vue原理&#xff0c;其中使用createDocumentFragment()方法&#xff0c;是用来创建一个虚拟的节点对象&#xff0c;那问题来了&#xff0c;创建了虚拟dom树&#xff0c;且最后只渲染了虚拟dom树里面的节点&#xff0c;那原dom树的节点去哪里了&#xff0c;查阅了…

正则表达式图书

From: http://www.usidcbbs.com/read-htm-tid-1457-page-2.html 网文 vs 书藉 只要是知道“正则”这个词的&#xff0c;上网搜集个把资料&#xff0c;应该就不是问题吧。我获得正则消息的网絡渠道有这样几个&#xff0c;以质量从高到低排序&#xff1a;dilicious标签&#xff0…

Spring.NET学习笔记12——面向切面编程(基础篇) Level 300

AOP即面向切面编程(Aspect Oriented Programming的缩写)&#xff0c;是OOP(面向对象编程)的一种延续形式。是通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术&#xff0c;它从一个不同于OOP的角度来看待程序的结构&#xff1a;OOP将…

React开发(158):ant design级联回显 直接传入数组

ReactDOM.render(<CascaderdefaultValue{[zhejiang, hangzhou, xihu]}options{options}onChange{onChange}/>,mountNode, );

vue-cli3使用svg图标的详细步骤

1.安装依赖 npm install svg-sprite-loader -D2.在vue.config.js里添加配置 module.exports{chainWebpack: config > {const svgRule config.module.rule("svg"); svgRule.uses.clear();svgRule.use("svg-sprite-loader").loader("svg-sprite…

网络工程师的忠告

诸位&#xff0c;咱当网络工程师也是几年了&#xff0c;不算有出息&#xff0c;环顾四周&#xff0c;也没有看见几个有出息的&#xff01;回顾工程师生涯&#xff0c;感慨万千&#xff0c;愿意讲几句掏心窝子的话&#xff0c;也算给咱们师弟师妹们提个醒&#xff0c;希望他们比…

python模拟登陆163邮箱并获取通讯录

From: http://hi.baidu.com/fc_lamp/blog/item/2466d1096fcc532de8248839.html python模拟登陆163邮箱并获取通讯录 #-*- coding:UTF-8 -*-import urllib,urllib2,cookielibimport xml.etree.ElementTree as etree #xml解析类class Login163:#伪装browserheader {User-Agent:…

【BZOJ】【3850】ZCC Loves Codefires

贪心 就跟NOIP2012国王游戏差不多&#xff0c;考虑交换相邻两题的位置&#xff0c;对其他题是毫无影响的&#xff0c;然后看两题顺序先后哪个更优。sort即可。 WA了一次的原因&#xff1a;虽然ans开的是long long&#xff0c;但是在这一句:anstime*a[i].k;时&#xff0c;还是需…

Element-UI中关于table表格的那些骚操作

最近的项目中使用到element-ui组件库&#xff0c;由于做的是后台管理系统&#xff0c;所以经常需要操作表格&#xff0c;编辑样式的过程中遇到一些问题&#xff0c;官网针对table给出了很多的api&#xff0c;自己可以自定义&#xff0c;基本能满足产品需求&#xff0c;但是没有…

讯闪菜单密码去除方法

网上有很多关于讯闪菜单密码去除或补丁软件&#xff0c;但都没有把原理说出来&#xff0c;下面介绍方法&#xff1a;打开&#xff1a;讯闪目录\data\ClientCfg.ini查找&#xff1a;分类辅助d41d8cd98f00b204e9800998ecf8427e把分类辅助替换为&#xff1a;d41d8cd98f00b204e9800…

详细介绍 Qt Creator 快捷捷应用

From: http://www.zhujiangroad.com/program/Symbian/25211.html Qt Creator 快捷捷应用是本文要介绍的内容 。以前经常用VSQT的方式来学习QT&#xff0c;VS确实挺强大&#xff0c;不过每次编译Qt&#xff0c;太浪费时间&#xff0c;而且如果重装系统或者VS都必须重新编译&…

asp IIS部署An error occurred on the server when processing the URL错误提示解决

An error occurred on the server when processing the URL. Please contact the system administrator.If you are the system administrator please click here to find out more about this error.其实这是 IIS7 对 ASP 程序发送的一个脚本错误消息&#xff0c;只要是程序中…

修饰符.lazy .number .trim

1、lazy v-model 在每次 input 事件触发后将输入框的值与数据进行同步,也就是在失去焦点或者按下回车键时才更新 <template><div><p>.lazy修饰符</p><input type"text" v-model.lazy"val"><p>{{ val }}</p><…