Adicionando propriedades para modelo T4 - escolhendo servidor, banco de dados, mesa

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

  •  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

Foi útil?

Solução

Como sobre isso?

<#    
    Server server = new Server(serverName);    
    Database database = new Database(server, databaseName);    
    Table table = new Table(database, tableName);    
    table.Refresh();
#>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top