代码生成器 CodeSmith 的使用(五)

在上一篇的版本中,我们使数据库中的单个表 生成 PetaPoco 构架下的 ORM 映射,这次呢,要使数据库中的所有的表 生成 PetaPoco 构架下的 ORM 映射。

首先来看完整的 Camel 规则模板:

<p><%-- 

Name:  Copyright © Sun 2013-2014 All rights reserved  

Contact me:  <a target=_blank href="mailto:[email protected]">[email protected]</a>

Author:  SpringFileld

Description: 遍历数据库中所有的表,并映射成 PetaPoco类的 orm 

DateTime: 2014-07-31

--%></p><p><%@ CodeTemplate Language="C#" TargetLanguage="C#" Debug="False" Description="Create a list of properties from database table." %>

<%@ Property Name="SourceData" Type="SchemaExplorer.DatabaseSchema" Category="Context" Description="Table that the object is based on." %>

<%@ Map Name="CSharpAlias" Src="System-CSharpAlias" Description="System to C# Type Map" %>

<%@ Assembly Name="SchemaExplorer" %>

<%@ Import Namespace="SchemaExplorer" %>

<%@ Assembly  Name="xftwl.Infrastructure" %>

<%@ Import  Namespace="xftwl.Infrastructure" %></p><p><%foreach( var tb in SourceData.Tables){ %></p><p>    [TableName("<%=tb.Name %>")]

    <%foreach (var pk in tb.PrimaryKey.MemberColumns){ %>

    [PrimaryKey("<%= pk.Name%>")]

    <%} %>

    [ExplicitColumns]

    public partial class  <%=tb.Name %> 

      {

        <%foreach( var cl in tb.Columns) {%>  

         [Column]

         public <%=CSharpAlias[cl.SystemType.FullName]%> <%=StringUtil.ToCamelCase(cl.Name)%> { get; set; } 

        <%} %>

      }

        

    

<%} %></p>


Pascall 规则:

<%-- 

Name:  Copyright © Sun 2013-2014 All rights reserved  

Contact me:  [email protected]

Author:  SpringFileld

Description: 遍历数据库中所有的表,并映射成 PetaPoco类的 orm 

DateTime: 2014-07-31

--%>



<%@ CodeTemplate Language="C#" TargetLanguage="C#" Debug="False" Description="Create a list of properties from database table." %>

<%@ Property Name="SourceData" Type="SchemaExplorer.DatabaseSchema" Category="Context" Description="Table that the object is based on." %>

<%@ Map Name="CSharpAlias" Src="System-CSharpAlias" Description="System to C# Type Map" %>

<%@ Assembly Name="SchemaExplorer" %>

<%@ Import Namespace="SchemaExplorer" %>

<%@ Assembly  Name="xftwl.Infrastructure" %>

<%@ Import  Namespace="xftwl.Infrastructure" %>



<%foreach( var tb in SourceData.Tables){ %>



    [TableName("<%=tb.Name %>")]

    <%foreach (var pk in tb.PrimaryKey.MemberColumns){ %>

    [PrimaryKey("<%= pk.Name%>")]

    <%} %>

    [ExplicitColumns]

    public partial class  <%=tb.Name %> 

      {

        <%foreach( var cl in tb.Columns) {%>  

         [Column]

         public <%=CSharpAlias[cl.SystemType.FullName]%> <%=StringUtil.ToPascalCase(cl.Name)%> { get; set; } 

        <%} %>

      }

        

    

<%} %>


原生的:

<%-- 

Name:  Copyright © Sun 2013-2014 All rights reserved  

Contact me:  [email protected]

Author:  SpringFileld

Description: 遍历数据库中所有的表,并映射成 PetaPoco类的 orm 

DateTime: 2014-07-31

--%>



<%@ CodeTemplate Language="C#" TargetLanguage="C#" Debug="False" Description="Create a list of properties from database table." %>

<%@ Property Name="SourceData" Type="SchemaExplorer.DatabaseSchema" Category="Context" Description="Table that the object is based on." %>

<%@ Map Name="CSharpAlias" Src="System-CSharpAlias" Description="System to C# Type Map" %>

<%@ Assembly Name="SchemaExplorer" %>

<%@ Import Namespace="SchemaExplorer" %>

<%@ Assembly  Name="xftwl.Infrastructure" %>

<%@ Import  Namespace="xftwl.Infrastructure" %>



<%foreach( var tb in SourceData.Tables){ %>



    [TableName("<%=tb.Name %>")]

    <%foreach (var pk in tb.PrimaryKey.MemberColumns){ %>

    [PrimaryKey("<%= pk.Name%>")]

    <%} %>

    [ExplicitColumns]

    public partial class  <%=tb.Name %> 

      {

        <%foreach( var cl in tb.Columns) {%>  

         [Column]

         public <%=CSharpAlias[cl.SystemType.FullName]%> <%=cl.Name%> { get; set; } 

        <%} %>

      }

        

    

<%} %>


 

 

你可能感兴趣的:(code)