Добавление свойств в шаблон T4 - выбор сервера, базы данных, таблицы - PullRequest
3 голосов
/ 12 февраля 2009

Люди,

Я хотел бы создать несколько шаблонов T4 для генерации файлов классов (около 7 на таблицу) из базы данных для поддержки нашего внутреннего ORM (не спрашивайте - длинная история и исторические причины .....)

Мне бы очень хотелось, чтобы в моем главном шаблоне TT было свойство визуально выбирать сервер, базу данных и таблицу, для которой нужно создавать файлы (что-то вроде средства выбора таблиц в CodeSmith).

Поскольку этого, похоже, не существует (или оно есть?), Я подумал, что лучше всего использовать трехстрочное свойство для сервера, базы данных, имени таблицы и использовать SMO для подключения к этой таблице и получения данных столбца. необходимо.

Я попытался последовать примеру Олега Сыча и придумал:

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

но тогда как мне ссылаться на эти свойства в моем блоке кода, который подключается к серверу, указанному с помощью SMO для извлечения данных?

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

Я пытался поместить <#= serverName #> в скобки конструктора Server () - но это не работает :-( Похоже, я немного застрял здесь ...... какой смысл иметь свойства если я не могу оценить и использовать их значения!: -)

Любой берущий ??

Марк

1 Ответ

2 голосов
/ 12 февраля 2009

Как насчет этого?

<#    
    Server server = new Server(serverName);    
    Database database = new Database(server, databaseName);    
    Table table = new Table(database, tableName);    
    table.Refresh();
#>
...