利用T4模板,可以很方便的从数据库映射成Model模型,相当于动软等功效。但动软是可以直接生成三层,抽象工厂的,T4没那么牛叉,所以我们一般只用作生成Modle或者Server等指定方法了。

     废话少说,切入正题:

    下面我将讲解的有两部分,一部分是根据T4将方法属性等生成到一个类里面,另一个是分配生成到不同类里面。

   一.根据T4将方法生成到一个类里面

  T4模板——一个神奇的代码生成器

代码如下:

Customers.tt

<#@ assembly name="System.Core.dll" #>
<#@ assembly name="System.Data.dll" #>
<#@ assembly name="System.Data.DataSetExtensions.dll" #>
<#@ assembly name="System.Xml.dll" #>
<#@ import namespace="System" #>
<#@ import namespace="System.Xml" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Data" #>
<#@ import namespace="System.Data.SqlClient" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.IO" #>

<#@ include file="$(ProjectDir)DbHelper.ttinclude"  #>

using System;
namespace T4ConsoleApplication.Entities
{    

    public class <#=config.TableName#>
    {
        <# foreach(DbColumn column in DbHelper.GetDbColumns(config.ConnectionString, config.DbDatabase, config.TableName)){#>
      
        public <#= column.CSharpType#><# if(column.CommonType.IsValueType && column.IsNullable){#>?<#}#> <#=column.ColumnName#> { get; set; }
        <#}#> 
      
    }
}

<#+
    public class config
    {
        //修改要生成的数据库表
        public static readonly string ConnectionString="Data Source=.;Integrated Security=true;";
        public static readonly string DbDatabase="Inferno";
        public static readonly string TableName="RepositoryModel";
    }
#>
View Code

相关文章: