读书人

CodeSmith 应用教程(14) 使用SchemaEx

发布时间: 2013-02-02 12:27:16 作者: rapoo

CodeSmith 使用教程(14) 使用SchemaExplorer来获取数据库定义

在前面例子CodeSmith 使用教程(3): 自动生成Yii Framework ActiveRecord 我们使用了SchemaExplorer 来获取数据的MetaData(数据库Schema 定义)来自动生成Yii Framework的数据库表对应的ActiveRecord定义,本篇较详细的介绍一下的SchemaExplorer的用法,下一篇通过实例除了自动生成自动生成Yii Framework的数据库表对应的ActiveRecord定义外,还自动生成关联ActiveRecord的关系定义,也就是根据数据库表之间的关系(一对多,一对一,多对多)为ActiveRecord定义relations.

CodeSmith的SchemaExplorer定义在Assembly SchemaExplorer.dll 中,其命名空间为SchemaExplorer ,因此如果需要使用CodeSmith的SchemaExplorer 功能的话,需要添加对SchemaExplorer.dll的引用,如下:

SourceDatabase属性后显示一个“…”的按钮,表示使用一个附加的专用的编辑器来定义这个属性,点击这个按钮将启动数据库选择对话框:

CodeSmith 应用教程(14) 使用SchemaExplorer来获取数据库定义

使用这个对象框可以选择已通过Schema Explorer定义过的数据库或者添加新的数据库,通过单击“…”来添加新的数据库定义:

CodeSmith 应用教程(14) 使用SchemaExplorer来获取数据库定义

如果添加一个新的数据源,SchemaExplorer 打开了 数据源对话库 ,选择合适的数据源类型:

CodeSmith 应用教程(14) 使用SchemaExplorer来获取数据库定义

CodeSmith缺省支持的数据源类型有很多,包括了常用的ADO, DB2,MySQL,Oracle,PostgreSQL, SQL Server,Sqlite等,也可以自定义新的数据源类型。

本例我们选用SQL Server类型 ,并使用Chinook示例数据库:

CodeSmith 应用教程(14) 使用SchemaExplorer来获取数据库定义

选择数据库Chinook,显示结果:

Tables in database "Chinook":        Album        Artist        Customer        Employee        Genre        Invoice        InvoiceLine        MediaType        Playlist        PlaylistTrack        TrackSchemaExplorer 对应数据库的MetaData(表定义,列定义,主键,外键定义等)定义如下的对象模型,可以在代码模板中使用:CodeSmith 应用教程(14) 使用SchemaExplorer来获取数据库定义上图表示SchemaExplorer 定义了多种对象集合类型,对象类型,比如DatabaseSchema 定义了Commands属性,其类型为CommandSchemaCollection,这个集合的每项类型为CommandSchema ,对应到数据库定义中的一个命令。通过这个属性可以获取Command的定义等信息。使用SchemaExplorer 除了可以使用SchemaExplorer.DatabaseSchema类型来定义属性,还可以通过下面四种类型:
读书人网 >其他数据库

热点推荐