Люди,
Я хотел бы создать несколько шаблонов 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 () - но это не работает :-( Похоже, я немного застрял здесь ...... какой смысл иметь свойства если я не могу оценить и использовать их значения!: -)
Любой берущий ??
Марк