2009-02-11 7 views
3

Folks,Ajout de propriétés à modèle T4 - serveur picking, base de données, table

Je voudrais créer des modèles de T4 pour générer des fichiers de classe (environ 7 par table) à partir d'une base de données pour soutenir notre ORM en interne (Ne demandez pas - longue histoire et des raisons historiques .....)

Ce que j'aimerais vraiment faire est d'avoir une propriété sur mon modèle TT principal pour choisir visuellement le serveur, la base de données et la table pour laquelle créer les fichiers (quelque chose comme le sélecteur de table dans CodeSmith). Puisque cela ne semble pas exister (ou le fait?), Je me suis dit que la meilleure chose est d'utiliser trois propriétés de chaîne pour le serveur, la base de données, le nom de table et d'utiliser SMO pour se connecter à cette table J'ai besoin.

J'ai essayé de suivre les exemples de Oleg Sych, et est venu avec:

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

mais comment puis-je référence ces propriétés dans mon bloc de code qui se connecte au serveur spécifié à l'aide SMO pour récupérer les données?

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

J'ai essayé de mettre un <#= serverName #> dans les supports du constructeur Server() - mais cela ne fonctionne pas :-(On dirait que je suis un peu coincé ici ...... quel est le point de avoir des propriétés si je ne peux pas évaluer et utiliser leurs valeurs! :-)

Les preneurs?

Marc

Répondre

2

Que pensez-vous de cela?

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