在上一篇的版本中,我们生成了数据库中的字段,使生成的属性更加简洁,可读性也提高了很多,但都是钍对一个数据库的单个表,如果要将数据库中的所有 的表都生成相应的类,表中的字段也都生成属性,运行一次就可以将所有的表中的字段都生成属性。这样不仅提高了代码的生产效率,同时,为我们省去了很多枯燥 乏味的工作,把主要的精力集中在业务的处理上。

接下来就是要生成一个数据库中所有表中的所有的字段属性。同样的,生成后的规则也有三种, Camel规则, Pascal规则,和原生的

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

<%--
Name: Copyright © Sun 2013-2014 All rights reserved
Contact me: Sunnydayhu@163.com
Author: SpringFileld
Description: 遍历数据库中所有的表,并映射成 类的属性 Camel 规则
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" %> <%foreach( var tb in SourceData.Tables){ %> public partial class <%=StringUtil.ToCamelCase(tb.Name) %>
{
<%foreach( var cl in tb.Columns) {%> public <%=CSharpAlias[cl.SystemType.FullName]%> <%=StringUtil.ToCamelCase(cl.Name)%> { get; set; } <%} %>
} <%} %>

生成的效果如下:

 public partial class  accCardAccount
{ public int id { get; set; } public System.DateTime dateCreate { get; set; } public string card { get; set; } public decimal balance { get; set; } public decimal interest { get; set; } public decimal interestRates { get; set; } public string remark { get; set; } } public partial class accCardComhistory
{ public int id { get; set; } public System.DateTime dateCreate { get; set; } public string cardNo { get; set; } public decimal bonus { get; set; } public decimal welfare { get; set; } public string rechargeCardNo { get; set; } public decimal rechargeMoney { get; set; } }

生成的效果如下:

public partial class  AccCardAccount
{ public int Id { get; set; } public System.DateTime DateCreate { get; set; } public string Card { get; set; } public decimal Balance { get; set; } public decimal Interest { get; set; } public decimal InterestRates { get; set; } public string Remark { get; set; } } public partial class AccCardComhistory
{ public int Id { get; set; } public System.DateTime DateCreate { get; set; } public string CardNo { get; set; } public decimal Bonus { get; set; } public decimal Welfare { get; set; } public string RechargeCardNo { get; set; } public decimal RechargeMoney { get; set; } }

原生的:

<%--
Name: Copyright © Sun 2013-2014 All rights reserved
Contact me: Sunnydayhu@163.com
Author: SpringFileld
Description: 遍历数据库中所有的表,并映射成类的属性 Primitive
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" %> <%foreach( var tb in SourceData.Tables){ %> public partial class <%=tb.Name %>
{
<%foreach( var cl in tb.Columns) {%> public <%=CSharpAlias[cl.SystemType.FullName]%> <%=cl.Name%> { get; set; } <%} %>
} <%} %>

生成的效果:

 public partial class  acc_card_account
{ public int Id { get; set; } public System.DateTime DateCreate { get; set; } public string Card { get; set; } public decimal Balance { get; set; } public decimal Interest { get; set; } public decimal InterestRates { get; set; } public string Remark { get; set; } } public partial class acc_card_comhistory
{ public int Id { get; set; } public System.DateTime DateCreate { get; set; } public string CardNo { get; set; } public decimal Bonus { get; set; } public decimal Welfare { get; set; } public string RechargeCardNo { get; set; } public decimal RechargeMoney { get; set; } }

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

  1. XML代码生成器——XMLFACTORY 简介(四)

    XML代码生成器——XMLFACTORY 简介(四) 这一篇我们讲“类属性”页签的配置功能,您将了解到:如何为元素子值指定类属性的名称,数据类型,及容器类型. 如果,你没看过这个系列的第一篇文章,请先 ...

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

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

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

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

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

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

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

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

  6. 代码生成器 CodeSmith 的使用(六)

    在上一篇的版本中,我们生成了数据库所有表中的字段,如果要使数据库中的单个表 生成 PetaPoco 构架下的 ORM 映射,使那怎么办.这是这篇博客的主要内容. 首先来看完整的 Camel 规则模板: ...

  7. CodeSmith开发系列资料总结

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

  8. ToolsCodeTemplate使用

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

  9. 【视频教程】JEECG 入门视频教程大全+历史版本号代码下载

    <JEECG_v3 入门视频> PPT介绍下载:http://share.csdn.net/slides/4208 ************************************ ...

随机推荐

  1. 大龄码农那些事——也谈996.ICU

    1.背景 近期Github突然有一个开源项目火了,叫“996.icu”,开源地址:https://github.com/996icu/996.ICU ,目前star的人数截止我写这篇博文时已经高达17 ...

  2. BZOJ4710: [Jsoi2011]分特产【组合数学+容斥】

    Description JYY 带队参加了若干场ACM/ICPC 比赛,带回了许多土特产,要分给实验室的同学们. JYY 想知道,把这些特产分给N 个同学,一共有多少种不同的分法?当然,JYY 不希望 ...

  3. hdu5229

    bc41第二题: 题意:两个人有 n 个串,随机选出两个串,可以进行这样的操作:①选一个串消去最后一个字符,②若两串相同则可以全部消去两串 若到某个人时正好消去两个串,则这个人胜另一人负,问先手胜概率 ...

  4. bootstrap中如何控制input的宽度

    ☆1☆ bootstrap中如何控制input的宽度: v2版本:定义了很多class,可用在input. "input-block-level"."input-mini ...

  5. CentOS升级Python2.6到Python2.7并安装pip

    原文:http://ruter.sundaystart.net/2015/12/03/Update-python/ 貌似CentOS 6.X系统默认安装的Python都是2.6版本的?平时使用以及很多 ...

  6. 使用ioctl获取网卡统计信息

    ethtool -S获取接口统计信息总共分三步: 1.获取统计项个数,使用SIOCETHTOOL+ETHTOOL_GSSET_INFO 2.(可选)获取统计项名字,使用SIOCETHTOOL+ETHT ...

  7. jquery.ellipsis根据宽度(不是字数)进行内容截断,支持多行内容

    jquery.ellipsis 自动计算内容宽度(不是字数)截断,并加上省略号,内容不受中英文或符号限制. 如果根据字数来计算的话,因为不同字符的宽度并不相同,比如l和W,特别是中英文,最终内容宽度会 ...

  8. Apache2.4配置(全)

    http://blog.csdn.net/u012291157/article/details/46492137

  9. PHP 7.0 EOL (PHP 技术支持相关)

    PHP 7.0 EOL (PHP 支持相关) PHP 5.6 于 2018-12-31 结束(EOL) 从图表看出,PHP 7.0 是一个过渡版本,现在已经 EOL. 而 PHP 7.1 将于明年年底 ...

  10. Huawei E1750 Asterisk

    http://wiki.e1550.mobi/doku.php?id=installation https://wiki.asterisk.org/wiki/display/AST/Mobile+Ch ...