codesmith 实体类,数据操作类

CodeSmith数据库字典模板快速生成指南 CodeSmith Generator是一个高级代码生成工具,它使用模板和数据来生成强类型源代码、配置文件和其他文本输出。它支持多种数据源,如数据库、XML文档、Web Services,并且支持多种编程语言,包括C#、VB.NET、PHP、Java等。在软件开发中,CodeSmith可以用于快速创建数据访问层、业务逻辑层、测试代码等,尤其在需要重复生成相似代码或配置文件时,CodeSmith能大大提高开发效率。 阅读详情
<%--  
Name:dd
Author:binbin     
Description: booksir
--%>
<% @ CodeTemplate Language = " C# "  TargetLanguage = " Text "  Src = ""  Inherits = ""  Debug = " False "  Description = " Template description here. "   %>
<% @ Assembly Name = " SchemaExplorer "   %>  
<% @ Import Namespace = " SchemaExplorer "   %>
<% @ Assembly Name = " System.Data "   %>
<% @ Import Namespace = " System.Data "   %>
<% @ Property   Name = " SourceTable "    Type = " SchemaExplorer.TableSchema "     Category = " Context "    Description = " 选择一个表 "   %>
<% @ Property Name = " NameSpace "  Type = " System.String "  Default = " SomeValue "  Optional = " True "  Category = " Strings "  Description = " 程序的命名空间 "   %>
/*
代码自动生成工具 codesmith  
Author: lovebanyi 风云
*/

using  System;
using  System.Web;
using  System.Data;
namespace   <%= NameSpace %>
{
    
public class <%=OneToUpper(SourceTable.Name)%>Info
    
{
        
<%for(int i=0;i<SourceTable.Columns.Count;i++){%>
        
private <%=GetCSharpVariableType(SourceTable.Columns[i])%> <%=OneToLower(SourceTable.Columns[i].Name)%>_;
        
<%}
%>
        
public <%=OneToUpper(SourceTable.Name)%>Info(<%for(int i=0;i<SourceTable.Columns.Count;i++){%><%=GetCSharpVariableType(SourceTable.Columns[i])%> <%=OneToLower(SourceTable.Columns[i].Name)%><%if (i<SourceTable.Columns.Count-1){%>,<%}}%>)
        
{
        
<%for(int i=0;i<SourceTable.Columns.Count;i++){%>
            
this.<%=OneToLower(SourceTable.Columns[i].Name)%>_=<%=OneToLower(SourceTable.Columns[i].Name)%>;
        
<%}
%>
        }

        
<%for(int i=0;i<SourceTable.Columns.Count;i++){%>
        
public <%=OneToUpper(SourceTable.Columns[i].Name)%>
        
{
            
get{return <%=OneToLower(SourceTable.Columns[i].Name)%>_;}
        }

        
<%}
%>
    }

    
}

< script runat = " template " >
// 第一个字母大写
private   string  OneToUpper( string  str)
{
    
return str.Substring(0,1).ToUpper()+str.Substring(1);
}

// 第一个字母小写
private   string  OneToLower( string  str)
{
    
return str.Substring(0,1).ToLower()+str.Substring(1);    
}


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

    }

}

</ script >


<%--  
Name:dd
Author:binbin     
Description: booksir
默认的数据表必须是ID为组件开头
在使用的过程中必须先添加数据库
--%>
<% @ CodeTemplate Language = " C# "  TargetLanguage = " Text "  Src = ""  Inherits = ""  Debug = " False "  Description = " Template description here. "   %>
<% @ Assembly Name = " SchemaExplorer "   %>  
<% @ Import Namespace = " SchemaExplorer "   %>
<% @ Assembly Name = " System.Data "   %>
<% @ Import Namespace = " System.Data "   %>
<% @ Property Name = " SourceTable "  Type = " SchemaExplorer.TableSchema "  Category = " Context "  Description = " 选择一个表 "   %>
<% @ Property Name = " NameSpace "  Type = " System.String "  Default = " SomeValue "  Optional = " True "  Category = " Strings "  Description = " 程序的命名空间 "   %>
/*
代码自动生成工具 codesmith  
Author: lovebanyi 风云
*/

using  System;
using  System.Web;
using  System.Data;
using  System.Data.SqlClient;
namespace   <%= NameSpace %>
{
    
public class <%=OneToUpper(SourceTable.Name)%> 
    
{
        
public void Add(<%=OneToUpper(SourceTable.Name)%>Info <%=OneToLower(SourceTable.Name)%>Info)
        
{
            
string sql="insert into <%=SourceTable.Name%>(<%for (int i=1;i<SourceTable.Columns.Count;i++){%>[<%=SourceTable.Columns[i].Name%>]<%if (i<SourceTable.Columns.Count-1){%>,<%}%><%}%>) values(<%for (int i=1;i<SourceTable.Columns.Count;i++){%>@<%=SourceTable.Columns[i].Name%><%if (i<SourceTable.Columns.Count-1){%>,<%}%><%}%>)";
            SqlParameter parms
=GetParms();
            SetParms(parms,
<%=OneToLower(SourceTable.Name)%>Info);
            SQLHelper.ExecuteNonQuery(SQLHelper.CONN_STRING,CommandType.Text,sql,parms);
            
        }

        
public void Update(<%=OneToUpper(SourceTable.Name)%>Info <%=OneToLower(SourceTable.Name)%>Info,int id)
        
{
            
string sql="update [<%=SourceTable.Name%>] set <%for (int i=1;i<SourceTable.Columns.Count;i++){%>[<%=SourceTable.Columns[i].Name%>]=@<%=SourceTable.Columns[i].Name%><%if (i<SourceTable.Columns.Count-1){%>,<%}%><%}%> where id="+id;
            SqlParameter parms
=GetParms();
            SetParms(parms,
<%=OneToLower(SourceTable.Name)%>Info);
            SQLHelper.ExecuteNonQuery(SQLHelper.CONN_STRING,CommandType.Text,sql,parms);
        }

        
public bool Del(int id)
        
{
            
string sql="delect from [<%=SourceTable.Name%>] where id="+id;
            SqlParameter parms
=null;
            
if (SQLHelper.ExecuteNonQuery(SQLHelper.CONN_STRING,CommandType.Text,sql,parms)==1)
            
{
                
return true;
            }

            
else
            
{
                
return false;
            }

        }

        
public <%=OneToUpper(SourceTable.Name)%>Info Get(int id)
        
{    
            
string sql="select <%for (int i=1;i<SourceTable.Columns.Count;i++){%>[<%=SourceTable.Columns[i].Name%>]<%if (i<SourceTable.Columns.Count-1){%>,<%}%><%}%> from [<%=SourceTable.Name%>] where id="+id;
            SqlDataReader dr 
= SQLHelper.ExecuteReader(SQLHelper.CONN_STRING,CommandType.Text,sql,parms);
            
if (dr.Read())
            
{
                
<%=OneToUpper(SourceTable.Name)%>Info <%=OneToLower(SourceTable.Name)%>Info = new <%=OneToUpper(SourceTable.Name)%>Info(<%for (int i=1;i<SourceTable.Columns.Count;i++){%>dr.Get<%=SourceTable.Columns[i].SystemType%>(<%=i-1%>)<%if (i<SourceTable.Columns.Count-1){%>,<%}%><%}%>);
                
                
return <%=OneToLower(SourceTable.Name)%>Info;
            }

            
throw new Exception("对不起不存在这条记录");
        }

        
public DataSet GetList()
        
{
            
//这边还用这个方便,以后再考虑生成collection
            string sql="select * from [<%=SourceTable.Name%>]";
            SqlParameter[] parms 
=null;
            
using(SqlConnection conn = new SqlConnection(SQLHelper.CONN_STRING))
            
{
                conn.Open();
                
return SQLHelper.ExcuteDataSet(conn,CommandType.Text,sql,parms);
            }

        }

        
public DataSet GetList(int pageSetup,int toPage,ref int itemCount)
        
{
            SqlParameter[] parms
=null;
            
string sql="select count(*) from [<%=SourceTable.Name%>]";
            SqlDataReader dr 
= SQLHelper.ExecuteReader(SQLHelper.CONN_STRING,CommandType.Text,sql,parms);
            
if (dr.Read())
            
{
                itemCount
=dr.GetInt32(0);    
            }

            sql
="<%=SourceTable.Name%>_Page";
            parms 
= new SqlParameter[]{new SqlParameter("@pageSetup",SqlDbType.Int),new SqlParameter("@toPage",SqlDbType.Int)};
            parms[
0].Value=pageSetup;
            parms[
1].Value=toPage;
            
using (SqlConnection conn = new SqlConnection(SQLHelper.CONN_STRING))
            
{
                conn.Open();
                
return SQLHelper.ExcuteDataSet(conn,CommandType.StoredProcedure,sql,parms);
            }

            
/* 复带存储过程的代码
            CREATE PROCEDURE <%=SourceTable.Name%>_Page @pageSetup int,@topage int AS
            declare @SQLStr nvarchar(4000) 
            set @SQLStr='SELECT Top '+cast(@pageSetup as varchar)+' * FROM [<%=SourceTable.Name%>] WHERE id NOT IN (SELECT TOP '+cast(@pageSetup*@topage as varchar)+' id from [<%=SourceTable.Name%>] )'
            EXECUTE sp_executesql @SQLStr
            
*/
    
        }

        
private SqlParameter[] GetParms()
        
{
            SqlParameter[] parms
=SQLHelper.GetCachedParameters("<%=OneToUpper(SourceTable.Name)%>_Cache");
            
if (parms==null)
            
{
                parms 
= new SqlParameter[]{
                
<%for (int i=1;i<SourceTable.Columns.Count;i++){%>
                
new SqlParameter("@<%=SourceTable.Columns[i].Name%>",SqlDbType.<%=GetSqlParms(SourceTable.Columns[i])%>)<%if (i<SourceTable.Columns.Count-1){%>,<%}%>
                
<%}
%>
                }
;
                SQLHelper.CacheParameters(
"<%=OneToUpper(SourceTable.Name)%>_Cache",parms);
            }

            
return parms
        }

        
private void SetParms(SqlParameter[] parms,<%=OneToUpper(SourceTable.Name)%>Info <%=OneToLower(SourceTable.Name)%>Info)
        
{
            
<%for (int i=1;i<SourceTable.Columns.Count;i++){%>
            parms[
<%=i.ToString()%>].Value=<%=OneToLower(SourceTable.Name)%>Info.<%=OneToUpper(SourceTable.Columns[i].Name)%>
            
<%}
%>
        }

    }

    
}

< script runat = " template " >
// 第一个字母大写
private   string  OneToUpper( string  str)
{
    
return str.Substring(0,1).ToUpper()+str.Substring(1);
}

// 第一个字母小写
private   string  OneToLower( string  str)
{
    
return str.Substring(0,1).ToLower()+str.Substring(1);    
}

private   string  GetSqlParms(ColumnSchema column)
{
    
switch(column.NativeType)
    
{
        
case "varchar": return "VarChar,"+column.Size.ToString();
        
case "int": return "Int";
        
case "datetime": return "DateTime";
        
case "money": return "Money";
        
case "text": return "Text";
        
default :
        
{
            
return "";
        }

    }

}

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

    }

}

</ script >
 
数据库映射工具:CodeSmith案例分析 本文还有配套的精品资源,点击获取 简介:数据库映射软件是提高数据库与应用程序交互效率的开发工具,通过自动生成数据库操作代码,实现了对象关系映射(ORM),支持多种编程语言如C#和Java。CodeSmith作为模板驱动代码生成器,使开发者能够快速生成实体类、数据访问层和业务逻辑层代码,并且可以自定义模板以及支持多种输出语言,从而提高开发效率。通过定义数据库模式,代码生成器能... 阅读详情

相关推荐

CodeSmith的C#实体类 数据访问层 业务逻辑层的模板

CodeSmith模板.rar 包含了C#实体类 数据访问层 业务逻辑层的模板 是编写代码的好帮手

CodeSmith批量生成实体类

很久没有使用CodeSmith代码生成工具了,不知道现在还有没有人在用哦,最近准备做个个人博客系统,从使用Powerdesigner设计数据库开始,CodeSmith生成架构,然后慢慢实现博客系统搭建。 由于以前没有做过CodeSmith笔记,用的又少,几乎不会自定义模板的生成简单的实体类 ==||,本来很多大牛写了N篇技术文章了,看了N遍总觉得是别人的东西,个人觉得还是有必要自己动手多记几笔...

weixin_30532987的博客 172

解决CodeSmith 8.0生成mysql实体没有字段注释和表注释,亲测好用

使用办法: 找到CodeSmith的SchemaProviders目录,替换文件,即可。压缩包中也有.cs文件 如果打开失败重新选择一下驱动就可以了

用CodeSmith生成自定义模板

  当生成应用程序时,无论是编写数据访问代码还是生成自定义实体自定义集合,你会发现经常需要重复完成某些特定的任务。最近用CodeSmith编写了界面层到数据库访问层的模板以及用于生成存储过程的模板,感觉CodeSmith非常不错,不仅有利于提高团队的工作效率,自动完成那些最为乏味的任务,而且有利于让大家的代码保持一定的一致性和规范性。下面详细介绍一下如何生成自定义模板(以自定义实体为列),以作为总

2897

codesmith生成实体类、数据层类、和存储过程

codesmith代码生成模板,可生产实体类、数据层类

YOLOv8n行人检测实战:从数据集准备到模型训练

本文详细介绍了使用YOLOv8n进行行人检测的完整流程。首先阐述了YOLOv8的优势:高速推理(300+FPS)、更高精度、易用性和轻量化(仅6MB)。接着通过Docker搭建GPU训练环境,配置32GB共享内存避免数据加载问题,并安装必要的框架和OpenCV组件。数据集采用COCO2017标注格式,包含归一化坐标的YOLO标签文件。通过可视化脚本验证标注准确性后,提出多数据集融合训练策略以增强模型泛化能力。最后使用Ultralytics框架启动训练,展现了从环境搭建到模型训练的完整技术路径。该方案兼顾检测

Hi20240217的博客 1091

浅谈代码生成工具《CodeSmith》的使用(2)

上篇我们就代码生成工具进行了比较,今天我就CodeSmith的使用系统的进行介绍,并就自己在项目中的写的一套模板共享与大家。首先对工具进行介绍,版本5.0.1.4983,工具如下: 对CodeSmith是IDE有了简单的了解,下来我们就生成框架实体类进行介绍,以项目模板xb_Model为例介绍:一、导入支持语言库:&lt...

weixin_30485379的博客 161

PowerBuilder 9 遗留系统逆向实战:3款反编译工具对比与关键DLL破解

本文深入探讨了PowerBuilder 9遗留系统的逆向工程实战,对比分析了PBKiller、PB DeCompiler和Shudepb三款反编译工具的核心功能与适用场景,并详细解析了关键DLL破解技术。通过IDA和OllyDbg等工具的应用,提供了从静态解构到动态追踪的完整逆向方法论,帮助开发者有效维护老旧PB系统。

cucanqi9387的博客 1385

学习笔记:学习使用Microsoft Enterprise Library之Data(二)

上次说了如何使用ent lib的data,但是在开发中如果所有的代码都是靠手写的话,那效率就不行了。 下面说如果用codesmith生成相应的实体类和操作类。 1、下载安装codesmith; 2、参考 http://www.cnblogs.com/Gaby/archive/2009/04/21/1440563.html 修改中文乱码问题; 3、在codesmith的右边的模板浏览器中...

weixin_33832340的博客 168

别再只调电位器了!用单片机PWM控制LM317输出电压,精度和玩法都多了

本文探讨了如何利用单片机PWM控制LM317输出电压,替代传统的电位器调节方案。通过PWM信号的有源滤波和运放处理,实现了更高精度(±5mV)、更好温度稳定性(0.01%/°C)的数控稳压电源设计,支持远程控制和可编程曲线输出,为经典电路注入数字化智能。

weixin_29164497的博客 360

【TiktokAPI】Tiktok直播API与实时互动功能开发完全指南

Tiktok直播API允许开发者创建、管理直播,并实现各种互动功能。/*** 获取Tiktok直播API访问令牌* @param {string} client_id - 应用ID* @param {string} client_secret - 应用密钥* @param {string} code - 授权码* @param {string} redirect_uri - 重定向URI* @returns {Promise<object>} 访问令牌响应*/try {}),

Mageia的专栏 3198

轻量级持久层的讨论

    代码与模板已经发布,下载请到《轻量级持久层的讨论(代码与模板_V2)》    最近忙里偷闲做了一个级持久层,基础代码都已经完成,CodeSmith使用的模板也已完成,但是还没有充分测试所以先不发布,写这篇文章的主要目的是征集下博客园的各位大哥对这个级持久层的意见。    这个框架为了提高效率所以没有采用反射机制,而是使用一个表对应一个实体类和实体对象数据操作类的形式。换句话说就是每一个表都...

weixin_34000916的博客 96

侧杆试验 - 高速撞击 - 显式动力学 - ANSYS Workbench

显式动力学是一种时间积分方法,用于在速度很重要时执行动态模拟。显式动力学考虑快速变化的条件或不连续事件,例如自由落体、高速撞击和施加的负载。由于这些“非线性动力学”已集成到模拟中,因此显式动力学是模拟高度瞬态物理现象的首选。有些侧面碰撞是指车辆侧向撞上路边的坚硬物体,如树木或电线杆。这通常是由于驾驶员失去控制、超速、误判拐角或在湿滑路面上打滑造成的。

jianqimingtian的博客 1289

三层架构-------CodeSmith 生成代码解读 V1 (20130311)

基于CODESMITH生成模板解析 WEB->BLL->DLL->ENTITY WEB->Info->Entity->EntityData 所有解释基于两个类 Student(学生)  Score(分数),不考虑太复杂,假设是幼儿园,只设一门课“玩” Student.Id(ID)   Student.Name(姓名) Score.Id(ID)     Score.StudentId(学生

狗剩的专栏 2498

导数与微分在 FPS 射击游戏中的实际应用:把“手感”算出来

摘要:射击游戏开发中,单线程适用于简单小游戏(如单机打靶),所有任务由主线程顺序处理,代码简单但效率较低;多线程则适合复杂场景(如多人在线3D大作),通过渲染、逻辑、网络、音效等线程分工协作,确保画面流畅、响应迅速和实时同步。选择依据取决于游戏复杂度、联网需求和性能要求,小型游戏用单线程,大型高要求项目必须采用多线程架构。(149字)

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 3278

【RK3399 Ubuntu】基于rk3399的lxde的lubuntu桌面移植适配记录之第二步:最基本Ubuntu根文件系统的相关常用工具完善

文章目录1.使能系统网络管理服务1.1 安装驱动modules管理工具1.2 使能网络服务2.终端自动补全命令功能3.安装ssh服务4.安装系统信息查看工具5.安装resize工具6.安装lrzsz工具7.使能rc.local服务7.1 修改服务Install块7.2 使能rc.local.service服务7.3 添加执行脚本且赋予执行权限 续接上文,本文主要完善前面已经制作好的rootfs 1.使能系统网络管理服务 1.1 安装驱动modules管理工具 apt-get install kmod 1.

wang 恒 的博客 1387

codesmith使用

安装后 破解 将两个dll烤到安装目录下!  自己制作CodeTemplateRule 将CodeSmith.Engine(在bin目录里)和SchemaExplorer(在AddIns目录里)  两个类添加到引用     using System; using System.Text; using System.ComponentModel; using CodeSmith....

weixin_33701617的博客 109

Java小白入门200例81之Java接口

作者简介 作者名:编程界明世隐 简介:优快云博客专家,从事软件开发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞! 引言 很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢? 其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大

编程界明世隐的博客 1359

发布一套CodeSmith模板

发布一套我的代码模板,运行于CodeSmith4.0,请大家多提意见,共同改进。 模板介绍: 1、参考了Nettiers2.0,但是没有使用企业库,数据操作类使用更为简单明了的SqlHelper2.0,更方便入门者学习和理解。 2、可以一键完成整个数据层代码的自动生成,包括项目文件。 3、程序架构参考Pedshop4.0 诸位下载后请留个言,改进后请告诉我,谢谢!qq:47950...

weixin_30471065的博客 113

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

来自CodeSmith的震撼

来自CodeSmith的震撼 前面我有一篇随笔重复,为什么我们要不断重复讲 述的是我在项目开发中的苦恼,引发了很多人讨论,大家各出高招,有人提到ORM,按我的愚见,ORM是在应用程序的类和数据库中表及视图建立一对一关系, 例如,数据库中有表tblarticle,那么与之对应,我们可以建立一个articleItem对象来表示单条的记录,表的每个字段做为 articleI...

weixin_30306905的博客 193

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

CodeSmith DAL生成模板

前面有贴出来一个CodeSmith Model生成模板的文章,现把DAL生成模板也贴出来。这里的数据库是用Northwind。表是用Customers。 CodeSmith Dal Code下载地址:CodeSmith Dal 下载 CodeSmithModel Code下载地址:CodeSmithModel下载 命名空间名称NameSpace:Chhuic DAL类名...

weixin_30784501的博客 204

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

CodeSmith 创建Ado.Net自定义模版(三)

CodeSmith 创建Ado.Net自定义模版(三) 接上一篇: CodeSmith 创建Ado.Net自定义模版(二) 写数据访问层模版:Step3_DAL.cst (接口一这步在这套模版中省略,可以自行补充) 写几个通用方法,比如:得到全部实体集合、通过ID得实体、添加、删除、修改几个方法 我这里没有使用sqlhelper之类的帮助类...

dbow21397的博客 142

关于CodeSmith生成CSLA代码的联想

  (把时间回到昨天中午)刚吃完午饭,吃边边在想早上下载的最新版本的CodeSmith(5.2),看它生成的CSLA框架代码的情况,搞了一阵子,出现很多异常,还以为是软件出毛病了,逛了他们的E文说明才发现比2.0多了很多步骤,最后还是搞定了,令自己大吃一惊,新版本(3.8)中的东西比2.0里面多了很多,这里是指代码生成时的代码量多了很多!!类也成了嵌套式的了,把业务、属性、数据门户等通过部部分类的...

weixin_34194087的博客 104

发布一套在项目开发过程中用到的CodeSmith模板(C#)

包括生成Insert,Update存储过程,实体类和View类。以及上面几种代码的批量生成模板。所生成的代码如下:代码/**本代码由代码生成器自动生成,请不要更改此文件的任何代码,如需要添加方法,请创建同名类,并在该类中添加新的方法。*生成时间:2010-11-29:44:44*生成者:Kuibono*/usingSystem;usingSystem.Text;usingSystem.D...

weixin_30596165的博客 155

录播教室预约系统(二)-服务器端与数据库的交互

每个表都对应这么多类,Data类库中的类还使用了很多存储过程,如果都需要我们手工书写,会很麻烦。所以我们采用了CodeSmith模板的方法。 需要注意的是,在我们的开发过程中,模板只生成基础操作相关的一部分代码,还是会有一部分需要我们手工添加上,即使这样,模板也帮助我们做了很多工作。...

chvft44866的专栏 161
上一篇: .NET设计模式:工厂方法模式(Factory Method)BY Terrylee
下一篇: 利用SQL2005数据库复制技术 实现数据同步更新
comeon_data
博客等级 码龄22年 15粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值