Adición de propiedades a la plantilla T4 - recoger servidor, base de datos, tabla

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

  •  22-08-2019
  •  | 
  •  

Pregunta

La gente,

Me gustaría crear algunas plantillas T4 para generar archivos de clase (alrededor de 7 por tabla) de una base de datos para apoyar nuestro ORM-casa en (no preguntar - razones historia larga e históricos .....)

Lo que realmente me gustaría hacer es tener una propiedad en mi plantilla principal TT para recoger visualmente servidor, base de datos y tabla en la que para crear los archivos (algo así como el selector de mesa en CodeSmith).

No parece

Dado que la existencia (o no?), pensé que lo mejor es el uso de tres propiedad de cadena de servidor, base de datos, nombre de la tabla, y el uso SMO para conectarse a esa mesa y obtener los datos que la columna necesitar.

He intentado seguir ejemplos de Oleg sych, y se acercó 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" #>

pero entonces ¿Cómo me refiero esas propiedades en mi bloque de código que se conecta con el servidor especificado mediante SMO para recuperar los datos?

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

He intentado poner un <#= serverName #> dentro de los corchetes del servidor () constructor - pero eso no funciona :-( Parece que estoy un poco atascado aquí ...... ¿cuál es el punto de tener propiedades si no se puede evaluar y utilizar sus valores: -!)

Toda la toma ??

Marc

¿Fue útil?

Solución

¿Qué tal esto?

<#    
    Server server = new Server(serverName);    
    Database database = new Database(server, databaseName);    
    Table table = new Table(database, tableName);    
    table.Refresh();
#>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top