Добавление свойств в шаблон Т4 – выбор сервера, базы данных, таблицы
-
22-08-2019 - |
Вопрос
Близкие,
Я хотел бы создать несколько шаблонов 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() - но это не работает :-( Похоже, я здесь немного застрял......какой смысл иметь свойства, если я не могу оценить и использовать их значения!:-)
Есть желающие??
Марк
Решение
Как насчет этого?
<#
Server server = new Server(serverName);
Database database = new Database(server, databaseName);
Table table = new Table(database, tableName);
table.Refresh();
#>