日期:2014-05-16 浏览次数:20533 次
在前面例子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的引用,如下:
<%@ CodeTemplate Language="C#" TargetLanguage="Text" Description="List all database tables" %> <%@ Property Name="SourceDatabase" Type="SchemaExplorer.DatabaseSchema" Category="Context" Description="Database containing the tables." %> <%@ Assembly Name="SchemaExplorer" %> <%@ Import Namespace="SchemaExplorer" %> Tables in database "<%= SourceDatabase %>": <% for (int i = 0; i < SourceDatabase.Tables.Count; i++) { %> <%= SourceDatabase.Tables[i].Name %> <% } %>
以上代码添加了SchemaExplorer库的引用,并定义了一个属性SourceDatabase,其类型为SchemaExplorer.DatabaseSchema ,在运行这个模板前,必须设置SourceDatabase的值:
SourceDatabase属性后显示一个“…”的按钮,表示使用一个附加的专用的编辑器来定义这个属性,点击这个按钮将启动数据库选择对话框: