Hinzufügen von Eigenschaften zu T4-Vorlage - Kommissionierung Server, Datenbank, Tabelle

StackOverflow https://stackoverflow.com/questions/538988

  •  22-08-2019
  •  | 
  •  

Frage

Leute,

Ich möchte einige T4-Vorlagen zur Erzeugung von Klassendateien (etwa 7 pro Tisch) erstellen, die aus einer Datenbank unserer hauseigenen ORM zu unterstützen (nicht fragen - lange Geschichte und historischen Gründen .....)

Was würde ich wirklich lieben, eine Eigenschaft auf meiner Haupt-TT-Vorlage zu tun ist, muß visuell Pick-Server, Datenbank und Tabelle, für die die Dateien (so etwas wie die Tabelle Picker in Codesmith) erstellen.

Da das scheint nicht zu existieren (oder doch?), Ich dachte nächste beste Sache für Server drei String-Eigenschaft verwendet, Datenbank, Tabellennamen, und verwenden Sie SMO auf diese Tabelle zu verbinden und die Spaltendaten erhält mich müssen.

Ich habe versucht, Oleg Sych die Beispiele, und kam mit folgen:

<#@ 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 dann Wie verweisen ich diese Eigenschaften in meinem Code Block, der mit dem Server verbindet SMO spezifiziert unter Verwendung der 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 #> in den Klammern des Servers () Konstruktor setzen - aber das funktioniert nicht :-( Scheint, wie ich ein bisschen hier bin stecken ...... was ist der Punkt Eigenschaften zu haben, wenn ich kann nicht beurteilen und ihre Werte verwenden: -)

Jeder Abnehmer ??

Marc

War es hilfreich?

Lösung

Wie wäre das?

<#    
    Server server = new Server(serverName);    
    Database database = new Database(server, databaseName);    
    Table table = new Table(database, tableName);    
    table.Refresh();
#>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top