代码生成器 CodeSmith 的使用(六)
在上一篇的版本中,我们生成了数据库所有表中的字段,如果要使数据库中的单个表 生成 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 的使用(六)的更多相关文章
- 代码生成器 CodeSmith 的使用(二)
在第一篇中,简单的介绍了 CodeSmith 的使用方法,这次做一个生成简单的数据库字段属性的模板.以下只粘贴主要的代码片段. <%-- Name: Copyright © Sun 2013-2 ...
- 代码生成器 CodeSmith 的使用(一)
由于在项目中经常要会用到数据库的 CRUD 操作(增.删.改.查),而且还使用的是orm 框架将数据库表名和表中的的字段映射成相应的类属性.如果把大量的时间用到手工输入数据库表中的字段,除了能练习打字 ...
- 代码生成器 CodeSmith 的使用(三)
在第二篇中,介绍了用 codesmith 生成数据库中的一些字段,可生成的属性不够简洁,这次对上一次的版本进行重构,生成一些简洁的属性访问器.代码如下: Camel 规则: <%-- Name: ...
- 代码生成器 CodeSmith 的使用(五)
在上一篇的版本中,我们使数据库中的单个表 生成 PetaPoco 构架下的 ORM 映射,这次呢,要使数据库中的所有的表 生成 PetaPoco 构架下的 ORM 映射. 首先来看完整的 Camel ...
- 代码生成器 CodeSmith 的使用(四)
在上一篇的版本中,我们生成了数据库中的字段,使生成的属性更加简洁,可读性也提高了很多,但都是钍对一个数据库的单个表,如果要将数据库中的所有 的表都生成相应的类,表中的字段也都生成属性,运行一次就可以将 ...
- CodeSmith开发系列资料总结
CodeSmith开发系列资料总结 最近跟同事在研究CodeSmith,感觉中文文档是少之又少,所以我们自己写(翻译)了一些文档,总结如下,希望对使用CodeSmith的朋友有所帮助: “努力学习的熊 ...
- ToolsCodeTemplate使用
最近学习使用CodeSmith代码生成器 CodeSmith 是一种语法类似于asp.net的基于模板的代码生成器,程序可以自定义模板,从而减少重复编码的劳动量,提高效率. 作用:CodeSmith ...
- 动软代码生成器 可用于生成Entity层,可更改模板 /codesmith 也可以
动软代码生成器官方下载地址:http://www.maticsoft.com/download.aspx 教程:http://jingyan.baidu.com/article/219f4bf7dfd ...
- CodeSmith 代码生成器
在上一篇我们已经用PowerDesigner创建好了需要的测试数据库,下面就可以开始用它完成批量代码生成的工作啦. 下面我会一步步的解释如何用CodeSmith实现预期的结果的,事先声明一下,在此只做 ...
随机推荐
- ldconfig
#ldconfig# http://www.cnblogs.com/lyongde/p/4190588.html ldconfig是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链 ...
- how to check CAN frame
1. check buffer size getsockopt(s, SOL_SOCKET, SO_SNDBUF,&snd_size, &optlen); setsockopt(s, ...
- ASP.NET MVC配置Redis服务
===================== 1.下载并安装Redis.官网并未提供Windows安装版,所以去Github 下载 下载地址: https://github.com/MicrosoftA ...
- L3-017 森森快递 (30 分)
森森开了一家快递公司,叫森森快递.因为公司刚刚开张,所以业务路线很简单,可以认为是一条直线上的N个城市,这些城市从左到右依次从0到(编号.由于道路限制,第i号城市(,)与第(号城市中间往返的运输货物重 ...
- 《DSP using MATLAB》Problem 3.10
用到了三角窗脉冲序列,各小题的DTFT就不写公式了,直接画图(这里只贴长度M=10的情况). 1. 代码: %% ------------------------------------------- ...
- SQLyog Enterprise常用快捷键
1. SQL格式化 F12 格式化当前行所在的SQL Ctrl+F12 格式化选中的SQL Shift+F12 格式化所有SQL 2. 窗口操作 Ctrl+T 打开一个新的查询窗口 Alt+ ...
- 【java规则引擎】《Drools7.0.0.Final规则引擎教程》第4章 4.2 no-loop
转载至:https://blog.csdn.net/wo541075754/article/details/75201934 no-loop 定义当前的规则是否不允许多次循环执行,默认是 false, ...
- 【正则表达式】java应用正则表达式
一:简单应用 /** * * ' * & * ' * & * & * ' * ' * ' * sources=sdcg'hde&xyz'dfa&&ad' ...
- jquery的常用操作(操作html页面的Dom对象的元素)
一:页面加载完成时,会执行jquery的方法(不需要等待图片加载完成,只要dom结构加载完成,就执行该方法) //第一种写法: $(document).ready(function() { // 执行 ...
- linux日志分析
转一位大神的笔记. 日志管理: 1.基于服务的 2.基于时间的 /var/log/wtmp,/var/run/utmp,/var/log/lastlog(lastlog),/var/log/btmp( ...