T4 templates

Posted: Март 22, 2011 in .NET, Кодогенерация

Ранее я уже писал о кодогенерации с помощью CodeSmith. Сегодня рассмотрим встроенный в Visual Studio механизм под названием T4 templates.

Создадим облегченную модель на основе какой-нибудь базы данных. У меня, например, структура таблиц такая

Для этого добавим файл под названием Model.tt со следующим содержимым

<#@ template debug="true" hostSpecific="true" #>
<#@ output extension=".cs" #>
<#@ Assembly Name="Microsoft.SqlServer.ConnectionInfo" #>
<#@ Assembly Name="Microsoft.SqlServer.Management.Sdk.Sfc" #>
<#@ Assembly Name="Microsoft.SqlServer.Smo" #>
<#@ import namespace="Microsoft.SqlServer.Management.Smo" #>
<#@ import namespace="System" #>
<#@ import namespace="System.IO" #>

namespace Entities
{
<#
var server = new Server(@".\SQLEXPRESS");
Database database = server.Databases["Test"];

foreach (Table table in database.Tables){#>
	public class <#= table.ToString().Replace("[dbo].[","").Replace("]","") #>
	{
		<#foreach(Column col in table.Columns){ #>
			public string  <#= col.Name #>;
		<#}#>
	}
			   
<#}#>
}

В файле Model.cs у меня появилось

namespace Entities
{
    public class Clients
    {
        public string ID;
        public string Name;
        public string Password;
        public string Email;
        public string Address;
    }

    public class OrderLines
    {
        public string ID;
        public string ProductID;
        public string Qty;
    }

    public class OrderLinesToOrders
    {
        public string OrderToLineID;
        public string OrderID;
        public string OrderLineID;
    }

    public class Orders
    {
        public string ID;
        public string ClientID;
        public string OrderDate;
    }

    public class Products
    {
        public string ID;
        public string Title;
        public string Barcode;
        public string Price;
    }

    public class sysdiagrams
    {
        public string name;
        public string principal_id;
        public string diagram_id;
        public string version;
        public string definition;
    }

}

Понятное дело, что еще есть с чем поработать, но отправная точка уже дана. Для более серьезной работой с T4 шаблонами рекомендую установить tangible T4 Editor.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s