zoukankan      html  css  js  c++  java
  • code smith模板改进——为实体自动添加数据源描述

    Spring.net Dao的改进——使用属性类描述实体数据源 中,我们借助属性类描述每一个实体,藉此实现Dao的精简。

    接下来的问题便是,这些实体如果手写工作量还真不小,当然,也可以使用代码生成工具,比如 CodeSmith ,使用方法可参考 .net企业级架构实战之4——Spring.net下的nHibernate数据访问模板一文,这里要说到的是,使用codeSmith在实体模板中编写一些简单的程序语句,使生成的类文件就已经包含数据源的描述元标记(理论上可以无限扩展)。

    这里放出一个 nHernate实体及hbm.xml生成模板 for codesmith ,把它下载解压到...\My Documents\CodeSmith\Templates下即可使用,执行文件为NHibernate.cst。

    此例中,主要改动的是NHibernate.class.cst,生成C#实体类的模板:

    NHibernate.class.cst

    public class 声明加上两段元标记,语法和C#一样:

    [Serializable]

    [TableInfo(TableName = "<%= ClassTable(SourceTable) %>", PrimaryKey = "<%= ColumnName(SourceTable.PrimaryKey.MemberColumns[0])%>" , Columns="
    <% for(int i=0;i<SourceTable.Columns.Count;i++{%>
    <%=ColumnName(SourceTable.Columns[i]) + (i==SourceTable.Columns.Count-1 ? "":","%>
    <%}
    %>")]
    public class <%= ClassName(SourceTable) %>

     运行,生成,就是我们需要的实体:

    Creative Commons License
    本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 Unported许可协议
    欢迎转载,但必须保留文章的署名老莫的帐本子
    并保留此链接:http://moye.cnblogs.com/
    如有疑问请发邮件:moyerock@gmail.com
  • 相关阅读:
    Linux:打印(输出)所有的列(awk, $0)
    Linux:批量修改分隔符(awk、BEGIN、FS、OFS、print、tr命令)
    vcf格式文件转化为Excel(csv)格式文件(R语言的write.csv,write.table功能,Excel表的文件导入功能)
    Linux追加文件内容并在内容前加上该文件名(awk, FILENAME功能妙用)
    斯坦福大学公开课机器学习:监督学习在行人检测的应用(supervised learning for pedestrian detection)
    斯坦福大学公开课机器学习:梯度下降运算的学习率a(gradient descent in practice 2:learning rate alpha)
    斯坦福大学公开课机器学习:梯度下降运算的特征缩放(gradient descent in practice 1:feature scaling)
    解决invalid record found in VCF4 file (at least 8 tab-delimited fields expected)问题,批量修改空格改为制表格格式
    vcf文件(call variants得来的)怎么看变异是纯合还是杂合的
    剑指offer四十八之不用加减乘除做加法
  • 原文地址:https://www.cnblogs.com/moye/p/1590572.html
Copyright © 2011-2022 走看看