在上一篇的版本中,我们生成了数据库所有表中的字段,如果要使数据库中的单个表 生成 PetaPoco 构架下的 ORM 映射,使那怎么办。这是这篇博客的主要内容。

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

<%--
Name: Copyright © Sun 2013-2014 All rights reserved
Contact me: Sunnydayhu@163.com
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="SourceTable" Type="SchemaExplorer.TableSchema" 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" %> [TableName("<%=SourceTable.Name %>")]
<%foreach (var pk in SourceTable.PrimaryKey.MemberColumns){ %>
[PrimaryKey("<%= pk.Name%>")]
<%} %>
[ExplicitColumns]
public partial class <%=SourceTable.Name %>
{
<%foreach( var cl in SourceTable.Columns) {%>
[Column]
public <%=CSharpAlias[cl.SystemType.FullName]%> <%=StringUtil.ToCamelCase(cl.Name) %> { get; set; }
<%} %>
} 生成的效果如下: [TableName("acc_card_account")]
[PrimaryKey("Id")]
[ExplicitColumns]
public partial class acc_card_account
{
[Column]
public int id { get; set; }
[Column]
public System.DateTime dateCreate { get; set; }
[Column]
public string card { get; set; }
[Column]
public decimal balance { get; set; }
[Column]
public decimal interest { get; set; }
[Column]
public decimal interestRates { get; set; }
[Column]
public string remark { get; set; }
} Pascall 规则: <%--
Name: Copyright © Sun 2013-2014 All rights reserved
Contact me: Sunnydayhu@163.com
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="SourceTable" Type="SchemaExplorer.TableSchema" 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" %> [TableName("<%=SourceTable.Name %>")]
<%foreach (var pk in SourceTable.PrimaryKey.MemberColumns){ %>
[PrimaryKey("<%= pk.Name%>")]
<%} %>
[ExplicitColumns]
public partial class <%=SourceTable.Name %>
{
<%foreach( var cl in SourceTable.Columns) {%>
[Column]
public <%=CSharpAlias[cl.SystemType.FullName]%> <%=StringUtil.ToPascalCase(cl.Name) %> { get; set; }
<%} %>
} 生成的效果如下: [TableName("acc_card_account")]
[PrimaryKey("Id")]
[ExplicitColumns]
public partial class acc_card_account
{
[Column]
public int Id { get; set; }
[Column]
public System.DateTime DateCreate { get; set; }
[Column]
public string Card { get; set; }
[Column]
public decimal Balance { get; set; }
[Column]
public decimal Interest { get; set; }
[Column]
public decimal InterestRates { get; set; }
[Column]
public string Remark { get; set; }
} 原生的: <%--
Name: Copyright © Sun 2013-2014 All rights reserved
Contact me: Sunnydayhu@163.com
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="SourceTable" Type="SchemaExplorer.TableSchema" 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" %> [TableName("<%=SourceTable.Name %>")]
<%foreach (var pk in SourceTable.PrimaryKey.MemberColumns){ %>
[PrimaryKey("<%= pk.Name%>")]
<%} %>
[ExplicitColumns]
public partial class <%=SourceTable.Name %>
{
<%foreach( var cl in SourceTable.Columns) {%>
[Column]
public <%=CSharpAlias[cl.SystemType.FullName]%> <%=cl.Name %> { get; set; }
<%} %>
} 生成的效果: [TableName("acc_card_account")]
[PrimaryKey("Id")]
[ExplicitColumns]
public partial class acc_card_account
{
[Column]
public int Id { get; set; }
[Column]
public System.DateTime DateCreate { get; set; }
[Column]
public string Card { get; set; }
[Column]
public decimal Balance { get; set; }
[Column]
public decimal Interest { get; set; }
[Column]
public decimal InterestRates { get; set; }
[Column]
public string Remark { get; set; }
}

代码生成器 CodeSmith 的使用(六)的更多相关文章

  1. 代码生成器 CodeSmith 的使用(二)

    在第一篇中,简单的介绍了 CodeSmith 的使用方法,这次做一个生成简单的数据库字段属性的模板.以下只粘贴主要的代码片段. <%-- Name: Copyright © Sun 2013-2 ...

  2. 代码生成器 CodeSmith 的使用(一)

    由于在项目中经常要会用到数据库的 CRUD 操作(增.删.改.查),而且还使用的是orm 框架将数据库表名和表中的的字段映射成相应的类属性.如果把大量的时间用到手工输入数据库表中的字段,除了能练习打字 ...

  3. 代码生成器 CodeSmith 的使用(三)

    在第二篇中,介绍了用 codesmith 生成数据库中的一些字段,可生成的属性不够简洁,这次对上一次的版本进行重构,生成一些简洁的属性访问器.代码如下: Camel 规则: <%-- Name: ...

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

    在上一篇的版本中,我们使数据库中的单个表 生成 PetaPoco 构架下的 ORM 映射,这次呢,要使数据库中的所有的表 生成 PetaPoco 构架下的 ORM 映射. 首先来看完整的 Camel ...

  5. 代码生成器 CodeSmith 的使用(四)

    在上一篇的版本中,我们生成了数据库中的字段,使生成的属性更加简洁,可读性也提高了很多,但都是钍对一个数据库的单个表,如果要将数据库中的所有 的表都生成相应的类,表中的字段也都生成属性,运行一次就可以将 ...

  6. CodeSmith开发系列资料总结

    CodeSmith开发系列资料总结 最近跟同事在研究CodeSmith,感觉中文文档是少之又少,所以我们自己写(翻译)了一些文档,总结如下,希望对使用CodeSmith的朋友有所帮助: “努力学习的熊 ...

  7. ToolsCodeTemplate使用

    最近学习使用CodeSmith代码生成器 CodeSmith 是一种语法类似于asp.net的基于模板的代码生成器,程序可以自定义模板,从而减少重复编码的劳动量,提高效率. 作用:CodeSmith ...

  8. 动软代码生成器 可用于生成Entity层,可更改模板 /codesmith 也可以

    动软代码生成器官方下载地址:http://www.maticsoft.com/download.aspx 教程:http://jingyan.baidu.com/article/219f4bf7dfd ...

  9. CodeSmith 代码生成器

    在上一篇我们已经用PowerDesigner创建好了需要的测试数据库,下面就可以开始用它完成批量代码生成的工作啦. 下面我会一步步的解释如何用CodeSmith实现预期的结果的,事先声明一下,在此只做 ...

随机推荐

  1. magento导航栏中如何加入home主页

    magento在导航栏中加入home主页是很简单的,几个步骤即可在magento导航栏中加入home主页! 下面简单介绍下如何在magento导航栏中加入home主页: 首先我们打开对应应用的模板文件 ...

  2. convertTo函数

    前言 使用opencv常常会需要用到数据类型之间的转换,此时需要使用convertTo函数. 代码: cv::Mat samples; cv::Mat tdata; samples.convertTo ...

  3. Lua基本语法-书写规范以及自带常用函数

    Lua基本语法-书写规范和常用函数 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 String Ope ...

  4. HDU 1003:Max Sum(DP,连续子段和)

    Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  5. node启动时候报错 Error: Cannot find module 'express'

    cmd命令  到目录下,然后运行 npm install -d 再 node hello.js

  6. (11)shutil模块(文件处理模块)

    shutil模块的格式 shutil.copyfileobj(文件1,文件2)   #将文件1的数据覆盖copy给文件2 import shutil f1 = open("1.txt&quo ...

  7. Comet OJ - Contest #2简要题解

    Comet OJ - Contest #2简要题解 前言: 我没有小裙子,我太菜了. A 因自过去而至的残响起舞 https://www.cometoj.com/contest/37/problem/ ...

  8. day 2克隆虚拟机器minimal需要注意的问题和制作本地yum源和常用的Linux的命令

    ------- 克隆bee2 PS:因为复制机器后,又多了一个网卡eth1.本来只有一个网卡eth0,下面是解决方案. 解决克隆后eth0不见的问题 1.直接修改vi  /etc/sysconfig/ ...

  9. 转-Hive/Phoenix + Druid + JdbcTemplate 在 Spring Boot 下的整合

    Hive/Phoenix + Druid + JdbcTemplate 在 Spring Boot 下的整合 http://blog.csdn.net/balabalayi/article/detai ...

  10. SharePoint2010 安装时报“未能启动数据库服务 MSSQL$Sharepoint"解决办法

    对于已经安装sql server 的情况 今天装SharePointFoundation遇到“未能启动数据库服务 MSSQL$Sharepoint”搜了下有如下解决办法 “HKLM_Local_Mac ...