Adicionando propriedades para modelo T4 - escolhendo servidor, banco de dados, mesa
-
22-08-2019 - |
Pergunta
Gente,
Eu gostaria de criar alguns modelos T4 para gerar arquivos de classe (cerca de 7 por tabela) a partir de um banco de dados para apoiar a nossa in-house ORM (não pergunte - longa história e razões históricas .....)
O que eu realmente gostaria de fazer é ter uma propriedade em meu principal modelo TT visualmente pegar servidor, banco de dados e tabela para a qual criar os arquivos (algo como o seletor de mesa na CodeSmith).
Uma vez que parece não existir (ou não?), Eu percebi próxima melhor coisa é usar três propriedade de cadeia para o servidor, banco de dados, nome da tabela, e usar o SMO para conectar a essa tabela e obter os dados da coluna I necessidade.
Tentei seguir exemplos de Oleg Sych, e veio com:
<#@ property name="serverName" processor="PropertyProcessor" type="System.String" #>
<#@ property name="databaseName" processor="PropertyProcessor" type="System.String" #>
<#@ property name="tableName" processor="PropertyProcessor" type="System.String" #>
Mas então como eu referência essas propriedades no meu bloco de código que se conecta ao servidor especificado usando o SMO para recuperar os dados?
<#
Server server = new Server();
Database database = new Database(server, "DASECO_DEV");
Table table = new Table(database, "T_User");
table.Refresh();
#>
Eu tentei colocar um <#= serverName #>
dentro dos colchetes do Servidor () construtor - mas que não funciona :-( Parece que eu estou um pouco preso aqui ...... o que é o ponto de ter propriedades se eu não é possível avaliar e utilizar os seus valores: -)
Qualquer comprador ??
Marc
Solução
Como sobre isso?
<#
Server server = new Server(serverName);
Database database = new Database(server, databaseName);
Table table = new Table(database, tableName);
table.Refresh();
#>