CodeSmith 模版

<%@ CodeTemplate Language="C#" TargetLanguage="C#" Src="" Inherits="" Debug="False" CompilerVersion="v3.5" Description="Template description here." %>
<%@ Property Name="ns" Type="System.String" Default="Yonyou.Cn" Optional="False" Category="命名空间" Description="描写命名空间" OnChanged="" Editor="" EditorBase="" Serializer="" %>
<%@ Property Name="TableSrc" Type="SchemaExplorer.TableSchema" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace <%=ns%>
{
public class <%=TableSrc.Name%>
{
<%for(int i=0;i<TableSrc.Columns.Count;i++){%>
private <%=GetCSharpTypeFromDBFieldType(TableSrc.Columns[i])%> _<%=ConvertToFieldName(TableSrc.Columns[i].Name) %>;
public string <%=ConvertToPropertyName(TableSrc.Columns[i].Name) %>
{
get{
return _<%=ConvertToFieldName(TableSrc.Columns[i].Name) %>;
}

set{
_<%=ConvertToFieldName(TableSrc.Columns[i].Name) %>=value;
}
}
<%} %>
}
}

<script runat="template">

public string GetCSharpTypeFromDBFieldType(ColumnSchema column)
{
string type;
switch (column.DataType)
{
case DbType.AnsiString: type= "string";break;
case DbType.AnsiStringFixedLength: type= "string";break;
case DbType.Binary: type= "byte[]";break;
case DbType.Boolean: type= "bool";break;
case DbType.Byte: type= "byte";break;
case DbType.Currency: type= "decimal";break;
case DbType.Date: type= "DateTime";break;
case DbType.DateTime: type= "DateTime";break;
case DbType.Decimal: type= "decimal";break;
case DbType.Double: type= "double";break;
case DbType.Guid: type= "Guid";break;
case DbType.Int16: type= "short";break;
case DbType.Int32: type= "int";break;
case DbType.Int64: type= "long";break;
case DbType.Object: type= "object";break;
case DbType.SByte: type= "sbyte";break;
case DbType.Single: type= "float";break;
case DbType.String: type= "string";break;
case DbType.StringFixedLength: type= "string";break;
case DbType.Time: type= "TimeSpan";break;
case DbType.UInt16: type= "ushort";break;
case DbType.UInt32: type= "uint";break;
case DbType.UInt64: type= "ulong";break;
case DbType.VarNumeric: type= "decimal";break;
default:
{
type= "__UNKNOWN__" + column.NativeType;
break;
}
}
if(column.AllowDBNull&&
column.SystemType.IsValueType)
{
type=type+"?";
}
return type;
}

public string ConvertToFieldName(string field)
{
return char.ToLower(field[0]).ToString()+field.Substring(1);
}
public string ConvertToPropertyName(string field)
{
return char.ToUpper(field[0]).ToString()+field.Substring(1);
}
</script>

时间: 2024-10-21 03:22:03

CodeSmith 模版的相关文章

[转载]企业级应用架构(NHibernater+Spring.Net+MVC3)

本人已经从事公司两套这类架构系统的开发工作啦!对于这套架构,我惊叹不已!BPS和CMS系统都是采用这套架构.但本人也同时渐渐发现了这套架构有诸多 不足之处,于是本人利用闲暇时光进一步改进了这套架构.新架构是基于“领域模型”的企业级应用架构模式,使用了 NHibernater+Spring.Net+MVC3的框架技术搭建.即便的是1.0版本,我也惊叹其几乎趋于完美了!这套架构是马丁.福勒关于“企 业级应用架构模式”理论的.Net实践. 架构基于三层模型,使用了接口技术.工厂模式.MVC模式.适配器

制作符合平台的CodeSmith代码生产模版

先看生产的结果 /////////////////////////////////////////////////////////////////////////////////////// // File: StandardizationProcess .cs // Description: Enter summary here after generation. // --------------------- // Copyright 谈勇 2015 Our Client // -----

CodeSmith的基础模版类(CodeSmith help中的内容)

基础模版类类型描述: Batch      OutputFileCodeTemplate  模版通过继承此类能够在生成过程中把他们的输出保存到文件中 ScriptError    在脚本执行中出现一个错误ScriptErrorCollection   ScriptResult    一个脚本的运行结果包含一些已经发生的错误ScriptUtility    这个类能用来在数据库上执行Sql脚本.SqlCodeTemplate   继承此类的模版当从一个Sql数据源生成代码时能够获得很多有用的帮助方

运用CodeSmith Studio实现C#项目构架

前言:运用CodeSmith Studio可以非常方便的针对具体的数据库生成C#项目的构架.本文将简要介绍操作流程. 准备工作:安装好CodeSmith Studio(网上一搜,到处都有下载).Visual Studio.Mssql Server. 建立好数据库.假如数据库名叫SkillExchange. 启动CodeSmith,连接数据库.在Schema Explorer(如果主界面没有显示,在菜单View中将其打开)中点击“+”图标,在弹出的[Data Source Manager]中选择[

2015.05.14:codesmith

安装: 安装好codesmith会有两个软件:一个编译器(CodeSmith Generator Explorer),一个生成工具(CodeSmith Generator Studio) 破解: 一般下载的codesmith的文件包里面有专门的破解工具但是使用的时候需要断网,然后随便输入数据 使用: 根据给出的模版(.cst的文件)生成框架 SourceTable:选择数据表 WXMP.IDao.SystemManage Assembly:相当于是这一部分:WXMP.IDao Namespace

codesmith API转载

CodeSmith API 中文版 目录 1   CodeSmith.BaseTemplates 1.1  Batch 1.1.1  属性 1.1.2  方法 1.2  OutputFileCodeTemplate 1.2.1  属性 1.2.2  方法 1.3  ScriptError 1.3.1  方法 1.4  ScriptErrorCollection 1.4.1  属性 1.4.2  方法 1.5  ScriptResult 1.5.1  属性 1.5.2  方法 1.6  Scrip

CodeSmith Template Model Output

背景:上学那会儿就接触CodeSmith,是一款非常优秀的代码自动生成工具.以前写过好些基本模版,可惜早不知道扔到哪儿去了,如今只能重新开始,把它捡回来,加油. 效果:将数据库 DataBase 应用到Model模版导出生成基于该库的所有实体 Entity 保存在本地,便于后期开发使用,工具下载 http://pan.baidu.com/s/1o6n2Z94 其中细节有些是拷贝网上的资料,再改过的,仅供学习参考,版权问题,概不负责 代码分享:Model.cst <%@ CodeTemplate

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

动软代码生成器官方下载地址:http://www.maticsoft.com/download.aspx 教程:http://jingyan.baidu.com/article/219f4bf7dfda86de442d380b.html codesmith  用法实例:http://www.cnblogs.com/huangcong/archive/2010/06/14/1758201.html

CodeSmith 基本语法(二)

CodeSmith之四 - 典型实例(四) CodeSmith API文档 (三) CodeSmith 基本语法(二) CodeSmith 图形界面基本操作(一) CodeSmith的C#语法与Asp.net MVC2的模板语法很像. 一.声明 编写模板代码的第一步是先进行一段声明: <%@ CodeTemplate Language="C#" TargetLanguage="C#" Description="Generates a class in