- 浏览: 2109360 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1878)
- [网站分类]ASP.NET (141)
- [网站分类]C# (80)
- [随笔分类]NET知识库 (80)
- [随笔分类]摘抄文字[非技术] (3)
- [随笔分类]养生保健 (4)
- [网站分类]读书区 (16)
- [随笔分类]赚钱 (7)
- [网站分类].NET新手区 (233)
- [随笔分类]网站 (75)
- [网站分类]企业信息化其他 (4)
- [网站分类]首页候选区 (34)
- [网站分类]转载区 (12)
- [网站分类]SQL Server (16)
- [网站分类]程序人生 (7)
- [网站分类]WinForm (2)
- [随笔分类]错误集 (12)
- [网站分类]JavaScript (3)
- [随笔分类]小说九鼎记 (69)
- [随笔分类]技术文章 (15)
- [网站分类]求职面试 (3)
- [网站分类]其他技术区 (6)
- [网站分类]非技术区 (10)
- [发布至博客园首页] (5)
- [网站分类]jQuery (6)
- [网站分类].NET精华区 (6)
- [网站分类]Html/Css (10)
- [随笔分类]加速及SEO (10)
- [网站分类]Google开发 (4)
- [随笔分类]旅游备注 (2)
- [网站分类]架构设计 (3)
- [网站分类]Linux (23)
- [随笔分类]重要注册 (3)
- [随笔分类]Linux+PHP (10)
- [网站分类]PHP (11)
- [网站分类]VS2010 (2)
- [网站分类]CLR (1)
- [网站分类]C++ (1)
- [网站分类]ASP.NET MVC (2)
- [网站分类]项目与团队管理 (1)
- [随笔分类]个人总结 (1)
- [随笔分类]问题集 (3)
- [网站分类]代码与软件发布 (1)
- [网站分类]Android开发 (1)
- [网站分类]MySQL (1)
- [网站分类]开源研究 (6)
- ddd (0)
- 好久没写blog了 (0)
- sqlserver (2)
最新评论
-
JamesLiuX:
博主,能组个队么,我是Freelancer新手。
Freelancer.com(原GAF – GetAFreelancer)帐户里的钱如何取出? -
yw10260609:
我认为在混淆前,最好把相关代码备份一下比较好,不然项目完成后, ...
DotFuscator 小记 -
日月葬花魂:
大哥 能 加我个QQ 交流一下嘛 ?51264722 我Q ...
web应用程序和Web网站区别 -
iaimg:
我想问下嵌入delphi写的程序总是出现窗体后面感觉有个主窗体 ...
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部 -
iaimg:
代码地址下不了啊!
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
<%--
Name: 数据访问层代码自动生成
Author: 水木
Description: 用来生成三层结构数据访问层代码
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="C#" Src="" ResponseEncoding="UTF-8" Inherits="" Debug="False" Description="Template description here." %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Optional="False" Category="SqlTable" Description="请输入数据库表" %>
<%@ Property Name="NameSpace" Type="System.String" Default="DAL" Optional="False" Category="NameSpace" Description="请输入命名空间"%>
<%@ Property Name="Author" Type="System.String" Default="郁时中" Optional="False" Category="other" Description="作者"%>
<%@ Property Name="DefaultDatabase" Type="System.Boolean" Default="True" Optional="False" Category="Booleans" Description="This is a sample boolean property." %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Assembly Name="System.Data" %>
<%@ Assembly Name="mscorlib" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Collections.Generic" %>
using System.Data;
using System;
using System.Text;
using System.Data.SqlClient;
using System.Collections.Generic;
using <%=NameSpace%>.Models;
namespace <%=NameSpace%>.DAL
{
/// <summary>
/// 数据访问类<%=SourceTable.Name%>Service
/// 作者:<%=this.Author%>
/// 创建日期:<%=System.DateTime.Now.ToLongDateString()%>
/// </summary>
public class <%=SourceTable.Name%>Service : <%=NameSpace%>.IDAL.I<%=SourceTable.Name%>Service
{
<% if(!DefaultDatabase) {%>DbHelper DbHelper = new DbHelper();<%}%>
#region CodeSmith自动生成
/// <summary>
/// 得到一个DataSet
/// </summary>
public DataSet GetData(string strWhere)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("select <%=GetColumnNameList(SourceTable)%> ");
strSql.Append(" FROM <%=SourceTable.Name%> ");
if(strWhere.Trim()!="")
{
strSql.Append(" where "+strWhere);
}
return DbHelper.Query(strSql.ToString());
}
/// <summary>
/// 增加一条数据
/// </summary>
public void Add(<%=this.GetModelName(this.SourceTable)%> <%=this.GetObjectName(this.SourceTable)%>)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("insert into <%=SourceTable.Name%>(");
strSql.Append("<%=GetColumnNameList(SourceTable)%>)");
strSql.Append(" values (");
strSql.Append("<%=GetColumnNameListPara(SourceTable)%>)");
SqlParameter[] parameters = {
<%for(int i=0; i<SourceTable.Columns.Count; i++) {%>
<%if(i == SourceTable.Columns.Count -1)
{%>
new SqlParameter("@<%=SourceTable.Columns[i].Name%>", <%=GetSqlDbType(SourceTable.Columns[i])%>,<%=SourceTable.Columns[i].Size%>)
<%}
else
{%>
new SqlParameter("@<%=SourceTable.Columns[i].Name%>", <%=GetSqlDbType(SourceTable.Columns[i])%>,<%=SourceTable.Columns[i].Size%>),
<%}%>
<%}%>
};
<%for(int i=0; i<SourceTable.Columns.Count; i++)
{%>
parameters[<%=i%>].Value=<%=this.GetObjectName(this.SourceTable)%>.<%=SourceTable.Columns[i].Name%>;
<%}%>
DbHelper.ExecuteSql(strSql.ToString(),parameters);
}
/// <summary>
/// 更新一条数据
/// </summary>
public void Update(<%=this.GetModelName(this.SourceTable)%> <%=this.GetObjectName(this.SourceTable)%>)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("update <%=SourceTable.Name%> set ");
strSql.Append("<%=GetUpdateColumn(SourceTable)%>");
strSql.Append(" where <%=GetKeyColumn(SourceTable).Name%>=@<%=GetKeyColumn(SourceTable).Name%> ");
SqlParameter[] parameters = {
<%for(int i=0; i<SourceTable.Columns.Count; i++)
{%>
<%if(i == SourceTable.Columns.Count -1)
{%>
new SqlParameter("@<%=SourceTable.Columns[i].Name%>", <%=GetSqlDbType(SourceTable.Columns[i])%>,<%=SourceTable.Columns[i].Size%>)
<%}
else{%>
new SqlParameter("@<%=SourceTable.Columns[i].Name%>", <%=GetSqlDbType(SourceTable.Columns[i])%>,<%=SourceTable.Columns[i].Size%>),
<%}%>
<%}%>
};
<%for(int i=0; i<SourceTable.Columns.Count; i++)
{%>
parameters[<%=i%>].Value = <%=this.GetObjectName(this.SourceTable)%>.<%=SourceTable.Columns[i].Name%>;
<%}%>
DbHelper.ExecuteSql(strSql.ToString(),parameters);
}
/// <summary>
/// 删除数据
/// </summary>
public void Delete(<% =GetPrimaryKeyType(SourceTable) + " " + GetKeyColumn(SourceTable).Name.ToLower()%>)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("delete <% =SourceTable.Name%> ");
strSql.Append(" where <% =GetKeyColumn(SourceTable).Name %>=@<% =GetKeyColumn(SourceTable).Name %> ");
SqlParameter[] parameters = {
new SqlParameter("@<% =GetKeyColumn(SourceTable).Name %>", <%=GetKeyColumnSqlType(SourceTable)%>, <%=GetKeyColumnSqlLength(SourceTable)%>)};
parameters[0].Value = <% =GetKeyColumn(SourceTable).Name.ToLower() %>;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
}
/// <summary>
/// 得到一个泛型集合
/// </summary>
public IList<<%=this.GetModelName(this.SourceTable)%>> GetList(string strWhere)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select <%=GetColumnNameList(SourceTable)%> ");
strSql.Append(" FROM <%=SourceTable.Name%> ");
if (strWhere.Trim() != "")
{
strSql.Append(" where " + strWhere);
}
IList<<%=this.GetModelName(this.SourceTable)%>> list = new List<<%=this.GetModelName(SourceTable)%>>();
using (SqlDataReader reader = DbHelper.ExecuteReader(strSql.ToString()))
{
while (reader.Read())
{
<%=this.GetModelName(SourceTable)%> <%=this.GetObjectName(SourceTable)%> = new <%=this.GetModelName(SourceTable)%>();
<% for(int i=0; i<SourceTable.Columns.Count; i++)
{%>
<%=this.GetObjectName(SourceTable)%>.<%=SourceTable.Columns[i].Name%> = <%=GetSqlReader(SourceTable.Columns[i])%>;
<%}%>
list.Add(<%=this.GetObjectName(SourceTable)%>);
}
}
return list;
}
/// <summary>
/// 得到一个对象实体
/// </summary>
public <%=this.GetModelName(SourceTable)%> GetModel(<%=GetPrimaryKeyType(SourceTable) + " " + GetKeyColumn(SourceTable).Name.ToLower()%>)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("select <%=GetColumnNameList(SourceTable)%> from <%=SourceTable.Name%> ");
strSql.Append(" where <%=GetKeyColumn(SourceTable).Name%>=@<%=GetKeyColumn(SourceTable).Name%> ");
SqlParameter[] parameters = {
new SqlParameter("@<% =GetKeyColumn(SourceTable).Name %>", <%=GetKeyColumnSqlType(SourceTable)%>, <%=GetKeyColumnSqlLength(SourceTable)%>)};
parameters[0].Value = <%=GetKeyColumn(SourceTable).Name.ToLower()%>;
<%=this.GetModelName(SourceTable)%> <%=this.GetObjectName(SourceTable)%> = new <%=this.GetModelName(SourceTable)%>();
DataSet ds=DbHelper.Query(strSql.ToString(),parameters);
foreach(DataRow dr in ds.Tables[0].Rows)
{
<% for(int i=0; i<SourceTable.Columns.Count; i++){%>
<%=this.GetObjectName(SourceTable)%>.<%=SourceTable.Columns[i].Name%>=<%=GetDrString(SourceTable.Columns[i])%>
<%}%>
}
if(ds.Tables[0].Rows.Count=0)
{
<%=this.GetObjectName(SourceTable)%>=null;
}
return <%=this.GetObjectName(SourceTable)%>;
}
#endregion
}
}
<script runat="template">
public string GetUpdateColumn(TableSchema table)
{
string strUpdate = "";
for(int i=0; i<table.Columns.Count; i++)
{
if(!table.Columns[i].IsPrimaryKeyMember)
{
if(strUpdate == string.Empty)
strUpdate = "[" + table.Columns[i].Name + "]=@" + table.Columns[i].Name;
else
strUpdate = strUpdate + "," + "[" + table.Columns[i].Name + "]=@" + table.Columns[i].Name;
}
}
return strUpdate;
}
public string GetDrString(ColumnSchema column)
{
string sqlReader = "dr[\"" + column.Name + "\"]";
string csharpType = GetCSharpType(column);
if(csharpType.ToLower() == "string")
return sqlReader + ".ToString();";
string temp = "(" + GetCSharpType(column) + ")" + sqlReader;
if(column.AllowDBNull)
{
temp = sqlReader + ".ToString() == Strimg.Empty ? null : " + temp;
}
temp = temp + ";";
return temp;
}
public string GetDataSet(ColumnSchema column)
{
string sqlReader = "ds.Tables[0].Rows[0][\"" + column.Name + "\"]";
string csharpType = GetCSharpType(column);
if(csharpType.ToLower() == "string")
return sqlReader + ".ToString();";
string temp = "(" + GetCSharpType(column) + ")" + sqlReader;
if(column.AllowDBNull)
{
temp = sqlReader + ".ToString() == Strimg.Empty ? null : " + temp;
}
temp = temp + ";";
return temp;
}
public string GetSqlReader(ColumnSchema column)
{
string sqlReader = "reader[\"" + column.Name + "\"]";
string csharpType = GetCSharpType(column);
if(csharpType.ToLower() == "string")
return sqlReader + ".ToString()";
string temp = "(" + GetCSharpType(column) + ")" + sqlReader;
if(column.AllowDBNull)
{
temp = sqlReader + ".ToString() == Strimg.Empty ? null : " + temp;
}
temp = temp;
return temp;
}
public string GetColumnNameListPara(TableSchema table)
{
string columnList = "";
for(int i=0; i<table.Columns.Count; i++)
{
if(columnList == string.Empty)
columnList = "@" + table.Columns[i].Name;
else
columnList = columnList + ",@" + table.Columns[i].Name;
}
return columnList;
}
public string GetColumnNameList(TableSchema table)
{
string columnList = "";
for(int i=0; i<table.Columns.Count; i++)
{
if(columnList == string.Empty)
columnList = "[" + table.Columns[i].Name + "]";
else
columnList = columnList + ",[" + table.Columns[i].Name + "]";
}
return columnList;
}
public ColumnSchema GetKeyColumn(TableSchema table)
{
ColumnSchema column = null;
for(int i=0; i<table.Columns.Count; i++)
{
if(table.Columns[i].IsPrimaryKeyMember)
column = table.Columns[i];
}
return column;
}
public string GetKeyColumnSqlType(TableSchema table)
{
ColumnSchema column = GetKeyColumn(table);
if(column == null)
return string.Empty;
return GetSqlDbType(column);
}
public int GetKeyColumnSqlLength(TableSchema table)
{
ColumnSchema column = GetKeyColumn(table);
if(column == null)
return 0;
return column.Size;
}
public string GetPrimaryKeyType(TableSchema table)
{
int columnIndex = 0;
for(int i=0; i<table.Columns.Count; i++)
{
if(table.Columns[i].IsPrimaryKeyMember)
columnIndex = i;
}
return GetCSharpType(table.Columns[columnIndex]);
}
public string GetSqlDbType(ColumnSchema column)
{
switch (column.NativeType.ToLower())
{
case "bigint": return "SqlDbType.BigInt";
case "binary": return "SqlDbType.Binary";
case "bit": return "SqlDbType.Bit";
case "char": return "SqlDbType.Char";
case "datetime": return "SqlDbType.DateTime";
case "decimal": return "SqlDbType.Decimal";
case "float": return "SqlDbType.Float";
case "image": return "SqlDbType.Image";
case "int": return "SqlDbType.Int";
case "money": return "SqlDbType.Money";
case "nchar": return "SqlDbType.NChar";
case "ntext": return "SqlDbType.NText";
case "numeric": return "SqlDbType.Decimal";
case "nvarchar": return "SqlDbType.NVarChar";
case "real": return "SqlDbType.Real";
case "smalldatetime": return "SqlDbType.SmallDateTime";
case "smallint": return "SqlDbType.SmallInt";
case "smallmoney": return "SqlDbType.SmallMoney";
case "sql_variant": return "SqlDbType.Variant";
case "sysname": return "SqlDbType.NChar";
case "text": return "SqlDbType.Text";
case "timestamp": return "SqlDbType.Timestamp";
case "tinyint": return "SqlDbType.TinyInt";
case "uniqueidentifier": return "SqlDbType.UniqueIdentifier";
case "varbinary": return "SqlDbType.VarBinary";
case "varchar": return "SqlDbType.VarChar";
default: return "__UNKNOWN__" + column.NativeType;
}
}
public string GetCSharpType(ColumnSchema column)
{
string para = "";
if (column.Name.EndsWith("TypeCode"))
return column.Name;
switch (column.DataType)
{
case DbType.AnsiString:
para = "string";
break;
case DbType.AnsiStringFixedLength:
para = "string";
break;
case DbType.Binary:
para = "byte[]";
break;
case DbType.Boolean:
para = "bool";
break;
case DbType.Byte:
para = "int";
break;
case DbType.Currency:
para = "decimal";
break;
case DbType.Date:
para = "DateTime";
break;
case DbType.DateTime:
para = "DateTime";
break;
case DbType.Decimal:
para = "decimal";
break;
case DbType.Double:
para = "double";
break;
case DbType.Guid:
para = "Guid";
break;
case DbType.Int16:
para = "short";
break;
case DbType.Int32:
para = "int";
break;
case DbType.Int64:
para = "long";
break;
case DbType.Object:
para = "object";
break;
case DbType.SByte:
para = "sbyte";
break;
case DbType.Single:
para = "float";
break;
case DbType.String:
para = "string";
break;
case DbType.StringFixedLength:
para = "string";
break;
case DbType.Time:
para = "TimeSpan";
break;
case DbType.UInt16:
para = "ushort";
break;
case DbType.UInt32:
para = "uint";
break;
case DbType.UInt64:
para = "ulong";
break;
case DbType.VarNumeric:
para = "decimal";
break;
default:
para = "__UNKNOWN__" + column.NativeType;
break;
}
return para;
}
#region Pascal 将字符串转换成Pascal格式(首字母大写:适用于类名,类的属性的名称)
public string ToPascal(string s)
{
return s.Substring(0,1).ToUpper()+s.Substring(1);
}
#endregion
#region 将字符串转换成Camel格式(首字母小写:适用于类的属性的字段)
public string ToCamel(string s)
{
return s.Substring(0,1).ToLower()+s.Substring(1);
}
#endregion
#region 得到实体类型名
public string GetModelName()
{
string s=this.SourceTable.Name;
if(s.EndsWith("s"))
{
s=s.Substring(0,s.Length-1);
}
return this.ToPascal(s);
}
public string GetModelName(TableSchema table)
{
string s=table.Name;
if(s.EndsWith("s"))
{
s=s.Substring(0,s.Length-1);
}
return this.ToPascal(s);
}
#endregion
#region 得到对象的名称
public string GetObjectName(TableSchema table)
{
return this.ToCamel(this.GetModelName(table));
}
#endregion
</script>
发表评论
-
UML
2010-08-09 11:39 1274开放分类:计算机技术计算机术语计算机科学 收藏分享到顶[6] ... -
用WebService实现调用新浪的天气预报功能
2010-07-15 21:47 2950用WebService实现调用新 ... -
Cookie简介及JSP处理Cookie的方法
2010-07-29 09:28 938Cookie简介及JSP处理Cookie的方法 一.什么是 ... -
SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径修改方法
2010-06-09 22:16 1222一直想把数据库的默认 ... -
C#Winform调用网页中的JS方法
2010-07-12 11:07 2199其实还是还是相当的简单,本文将详细的用代码来展示一下如何调用, ... -
用WebService实现调用新浪的天气预报功能
2010-07-15 21:47 1490用WebService实现调用新 ... -
SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径修改方法
2010-06-09 22:16 1057一直想把数据库的默认 ... -
基于 VS 2010 阐述C# 4个特性
2010-05-28 09:26 1042基于 VS 2010 阐述C# 4个特性基于 VS 20 ... -
Google AdSense中文官方博客今天公布了AdSense内容广告与AdSense搜索广告的收入分成比例
2010-05-25 09:12 1083google adsense 的广告分成比例总算是公布出来了。 ... -
权限管理数据表设计说明
2010-05-21 15:19 1057权限管理数据表设计说明 B/S系统中的权限比C/S中的更显的 ... -
权限管理的设计方法
2010-05-20 09:26 1393权限管理的设计方法是 ... -
多表分页存储过程
2010-05-17 14:25 1036分页存储过程 在网站设计,网页开发中,是要被经常遇到的。 ... -
vs2010跟vs2008比较增加了哪些功能
2010-05-18 09:10 2232随着vs2010的发布,新的 ... -
COM域名难逃实名监管 CN域名简化流程抢用户
2010-05-13 09:22 1152互联网实名制的落实第 ... -
网站安全之XSS漏洞攻击以及防范措施
2010-04-29 08:59 1370在网站开发中,安全问题是重中之重的问题,特别像一个sql注入, ... -
深入了解ASP.NET运行内幕
2010-04-28 09:04 1145做事情要知道根本所在 ... -
WebBrowser中显示乱码
2010-04-22 09:09 1700最近在开发cs项目的时候,因为嵌套了一个网页,要用到we ... -
vps配置笔记(10)架设svn服务
2010-04-21 09:41 1226linux 下面架设svn服务器,有点难度,我找了好多资料,现 ... -
IEnumerable
2010-04-16 09:12 1248在平常的代码编写中,虽然不常用到Ienumerable 但却不 ... -
JS代码实例:实现随机加载不同的CSS样式
2010-04-19 13:38 1392如果让网页浏览者每次打开页面都有新的感觉,可以通过替换css样 ...
相关推荐
只要简单地选择数据库字段就可以生成的模型层,数据访问层,业务层,显示层, 并且生成自动分页的SQL存储过程,增加数据,修改数据,删除数据的存储过程,条件查询存储过程, 生成DataGridView页面,Formview页面.FormView页面...
可以读取PowerDesigner的PDB文件,自动生成“增删改查”,可单独生成,可一键生成全部; 可以读取数据库,自动生成各种方法; (读取PD文件,可自动生成注释) PS:如有需求,可另定做。 在开发中很方便实用。
C#代码自动生成系统主要采用面对对象的开发方法,借鉴了J2EE提出的多层设计模式方法[设计优点就不在这说明],把数据操作和显示分成实体类、业务类、窗体三层。将系统划分成三层次,其好处是能够使得系统的架构更加...
它可以生成:实体Model,DAL(数据访问层),IDAL(接口层),DALFactory(类工厂),BLL(业务逻辑层),WEB层等多层的代码,可以节省大量的时间来做业务逻辑的代码,那些重复的代码就交给它去做吧,1分钟生成一个架构所有的...
在自动生成代码工具中,通过分析输入的设计文档,利用内置的代码模版,自动生成数据访问层(简称D层)和业务逻辑层代码(简称B层)的基本代码。并且预留出程序员加入逻辑控制代码的位置。
代码生成可生成Model层、业务逻辑层、数据访问层、MVC-C层(翻译层),MVC-V层(前台页面),并实现通过表描述和字段描述自动生成通用查询功能,前台利用EasyUI展示分页显示,数据访问均通过Ajax交互。...
自动生成三层模型,及各表的基本方法的存储过程,执行完存储过程,并将三层代码COPY到相应解决方案文件夹下即可使用 3.执行时只需运行AllBaseModel.cst即可,然后选择数据库,Proname为项目名称
三层架构代码生成器,输入数据库连接字符串自动生成Model、数据访问层和业务逻辑层的代码,并且自动区分自增字段,其实主要是Model层的生成,省去了很多不必要的麻烦,学习的好工具
同时由于考虑到数据库迁移等,所生成的操作数据库的代码,只需按生成的配置文件说明修改数据库连接,即可用于任何类型的数据库访问操作等,对应文件会自动解析,既一次生成可用于多种类型的数据库的操作,且当数据库...
可生成MVC三层代码,存储过程等.自动生成数据访问层,业务层。更牛的是能生成简单的项目
基于SQL数据库的C#三层代码生成器,可以自动生成:实体类,数据访问层,业务逻辑层。生成的方法包括:增、删、改、查一条,查所有数据。不足之处,请大家指出。欢迎大家指出Bug,邮箱659363097@qq.com
Visual Studio 2005 + SqlServer 2005 + SqlServer 2000 C/S架构 自动连接SqlServer 2005、 SqlServer 2000数据库,并根据数据库表关系和字段自动实现项目实体层、数据访问层、业务逻辑层的代码编辑工作,具有对各表...
它可以生成:实体Model,DAL(数据访问层),IDAL(接口层),DALFactory(类工厂),BLL(业务逻辑层),WEB层等多层的代码,可以节省大量的时间来做业务逻辑的代码,那些重复的代码就交给它去做吧,1分钟生成一个架构所有...
它可以生成:实体Model,DAL(数据访问层),IDAL(接口层),DALFactory(类工厂),BLL(业务逻辑层),WEB层等多层的代码,可以节省大量的时间来做业务逻辑的代码,那些重复的代码就交给它去做吧,1分钟生成一个架构所有...
这包括实体类(Entity)、数据访问对象(DAO)、数据传输对象(DTO)、值对象(VO)、查询对象(QO)、转换器(Convertor)、服务层(Service)以及服务层实现(Service.Impl)和控制器(Controller)等。...
数据实体层、数据访问层代码生成工具,access,mysql,sqlserver
狂人代码生成器 可以自动生成实体类、数据访问层码、业务逻辑层 源代码。经典三层架构 项目源码 、 能自动生成解决方案,支持 Visual Studio 2005 和 Visual Studio 2005 !
减轻开发人员负担,减少代码的键入量,根据sql server数据库表自动生成 BLL,DAL结构的C#代码。... 数据访问层 (Data Access Layer) 读写数据操作,由业务逻辑层调用来完成实际针对存储介质的访问。 界面显示层
只需设计好数据库,直接生成可以用的BS项目,此代码生成器非常方便,做项目只需设计好数据库,然后按照生成提示一步步做,即可生成可直接使用的项目,从数据访问层到表示层,所有代码一气生成,生成后的功能有增、删...
C#代码生成器实现了 数据访问层和模型层的代码自动实现功能,对于单表的增删改查都无需再手动编写。大大提高了ASP.NET用户的开发效率。