向T4模板添加属性 - 选择服务器,数据库,表

时间:2009-02-11 21:50:45

标签: properties t4 smo

民间,

我想创建一些T4模板,用于从数据库生成类文件(每个表约7个),以支持我们的内部ORM(不要问 - 长篇故事和历史原因.....)< / p>

我真正喜欢做的是在我的主TT模板上有一个属性,可以直观地选择要为其创建文件的服务器,数据库和表(类似于CodeSmith中的表选择器)。

因为这似乎不存在(或者它?),我认为接下来最好的事情是使用三个字符串属性作为服务器,数据库,表名,并使用SMO连接到该表并获取列数据I需要。

我试图跟随Oleg Sych的例子,并提出:

<#@ property name="serverName" processor="PropertyProcessor" type="System.String" #>
<#@ property name="databaseName" processor="PropertyProcessor" type="System.String" #>
<#@ property name="tableName" processor="PropertyProcessor" type="System.String" #>

但是如何在我的代码块中引用这些属性,这些属性连接到使用SMO指定的服务器来检索数据?

<#
    Server server = new Server();
    Database database = new Database(server, "DASECO_DEV");
    Table table = new Table(database, "T_User");
    table.Refresh();
#>

我尝试将<#= serverName #>放在Server()构造函数的括号内 - 但这不起作用:-(好像我有点卡在这里......有什么意义如果我无法评估和使用他们的价值,那就有了属性!: - )

任何接受者?

马克

1 个答案:

答案 0 :(得分:2)

这个怎么样?

<#    
    Server server = new Server(serverName);    
    Database database = new Database(server, databaseName);    
    Table table = new Table(database, tableName);    
    table.Refresh();
#>