3 Stimmen

Hinzufügen von Eigenschaften zur T4-Vorlage - Auswahl von Server, Datenbank und Tabelle

Leute,

Ich möchte einige T4-Vorlagen für die Generierung von Klassendateien (ca. 7 pro Tabelle) aus einer Datenbank erstellen, um unsere hauseigenen ORM zu unterstützen (fragen Sie nicht - lange Geschichte und historische Gründe.....)

Was ich wirklich gerne tun würde, ist eine Eigenschaft auf meine Haupt-TT-Vorlage visuell Server, Datenbank und Tabelle auswählen, für die die Dateien (so etwas wie die Tabelle Picker in CodeSmith) zu erstellen.

Da das nicht zu existieren scheint (oder tut es?), dachte ich nächstbeste Sache ist mit drei String-Eigenschaft für Server, Datenbank, Tabellenname, und verwenden Sie SMO zu dieser Tabelle zu verbinden und erhalten die Spalte Daten, die ich brauche.

Ich habe versucht, mich an den Beispielen von Oleg Sych zu orientieren, und bin zu dem Ergebnis gekommen:

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

aber wie verweise ich dann auf diese Eigenschaften in meinem Code-Block, der eine Verbindung zu dem mit SMO angegebenen Server herstellt, um die Daten abzurufen?

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

Ich habe versucht, eine <#= serverName #> innerhalb der Klammern des Server()-Konstruktors - aber das funktioniert nicht :-( Scheint so, als ob ich hier ein wenig feststecke...... was ist der Sinn von Eigenschaften, wenn ich ihre Werte nicht auswerten und verwenden kann! :-)

Ist jemand dabei?

Marc

2voto

Wie wäre es damit?

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X