L'aggiunta di immobili da template T4 - la raccolta di server, database, tabelle

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

  •  22-08-2019
  •  | 
  •  

Domanda

La gente,

Mi piacerebbe creare alcuni modelli T4 per la generazione di file di classe (circa 7 per tabella) da un database per sostenere la nostra in-house ORM (non chiedere - ragioni storia lunga e storiche .....)

Quello che mi piacerebbe davvero fare è avere una proprietà sul mio modello TT principale per raccogliere visivamente server di database e la tabella per la quale creare i file (qualcosa come il selettore tavolo in CodeSmith).

Dato che non sembra esistere (o lo fa?), Ho pensato che la prossima cosa migliore è usare tre proprietà della stringa per il server, database, nome della tabella, e utilizzare SMO per la connessione a quel tavolo e ottenere i dati che della colonna hanno bisogno.

Ho provato a seguire gli esempi di Oleg Sych, e si avvicinò con:

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

, ma poi come faccio fanno riferimento a tali proprietà nel mio blocco di codice che si collega al server specificato utilizzando SMO per recuperare i dati?

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

Ho provato a mettere un <#= serverName #> all'interno delle parentesi della Server () constructor - ma questo non funziona :-( Sembra come se fossi un po 'bloccato qui ...... qual è il punto di avere delle proprietà se io non è possibile valutare e utilizzare i loro valori: -!)

Eventuali acquirenti ??

Marc

È stato utile?

Soluzione

Che ne dici di questo?

<#    
    Server server = new Server(serverName);    
    Database database = new Database(server, databaseName);    
    Table table = new Table(database, tableName);    
    table.Refresh();
#>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top