- 浏览: 724852 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1081)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (0)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (1)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (0)
- [网站分类]4.其他技术区 (0)
- [网站分类]5.企业信息化 (0)
- [网站分类]6.读书心得区(技术书籍阅读心得、书籍推荐) (0)
- [网站分类]7.提问区(.NET技术方面的提问) (2)
- [网站分类]8.技术转载区(.NET技术文章转载, 请注明原文出处) (0)
- [网站分类]9.求职招聘区(个人求职、企业招聘) (0)
- [网站分类]Dottext区 (0)
- [网站分类]GIS技术 (0)
- [网站分类]IT英才专区(IT职场交流) (0)
- [网站分类]SharePoint (0)
- [网站分类]博客园.NET俱乐部(俱乐部组织与活动方面的文章) (0)
- [网站分类]软件发布区(发布自己开发的代码、软件) (0)
- [网站分类]网站管理区(网站管理方面的疑问、建议、意见, 寻求管理员帮助) (0)
- [网站分类]业界新闻 (1)
- 技术 (1)
- [随笔分类]生活感悟 (10)
- [随笔分类]C# (30)
- [随笔分类]AjaxPro教程 (3)
- [发布至博客园首页] (5)
- [随笔分类]简历 (0)
- [随笔分类]Linux (2)
- [随笔分类]技术聚会 (2)
- [随笔分类]ORM (1)
- [随笔分类]php (1)
- [随笔分类]创业 (1)
- [随笔分类]奇技淫巧 (1)
- [随笔分类]计划 (1)
- [随笔分类]架构&分层 (1)
- [随笔分类]整合行销 (1)
- [随笔分类]mac (1)
- [网站分类].NET新手区 (45)
- [网站分类]非技术区 (5)
- [网站分类]招聘区 (0)
- [随笔分类]单元测试 (1)
- [网站分类]其他技术区 (3)
- [网站分类]代码与软件发布 (6)
- [网站分类]提问区 (24)
- [随笔分类]ASP.NET (2)
- [随笔分类]FAQ (12)
- [随笔分类]开发人员工具 (1)
- [随笔分类]朗志轻量级项目管理解决方案 (1)
- [网站分类]读书区 (1)
最新评论
-
天使建站:
写和乱七八糟的 不知道从哪复制过来的 还是看这里吧j ...
jquery数组 -
hyn450:
你好,我最近也想了解一下竞争情报。不知道能不能交流一下呢 ?
最近的工作 -
lattimore:
这个连接打不开了阿!
使用vnc连ubuntu desktop -
MZhangShao:
奉劝你一句,以后在Ubuntu 用apt-get安装成功的软件 ...
关于xrdp的安装设置 -
f002489:
strftime
python下datetime类型的转换
为什么不是闲话,因为我很忙,项目中新问题是接连不断,上一篇讲到sqlite的并发问题,于是我又找了其它的嵌入式数据库Sqlserver CE compact 3.1/3.5也好不到哪去,万般无奈之下操起了berkeley db,为什么说是万般无奈呢?因为BDB(aka Berkeley DB)是非RDMBS,说白了你不能用sql.
BDB是一个大的哈希表,因为需要将原先储存在数据库中列以实体类转到字节的形式储存,OK,这里遇到一个问题,要生成实体类,实体类工具是一大把,mygeneration,codesmith,动软,之前都用过,可是原先的数据库是sqlite,一般的生成器可使不了这家伙,动软可以先排除了,本来想网上搜索一个轻便点的,结果找不到,于是down了一个新版的codesmith,找出以前我写的一套仿动软七层结构的模板(发现朗志项目的产出还挺大的,呵呵),拿出来改改,只是要生成个实体类,模板代码如下:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><%@ CodeTemplate Language="C#" TargetLanguage="C#" Description="Generates a very simple business object." %>
<%@ Property Name="DevelopersName" Type="String" Category="Context" Default="Lexus" Description="The name to include in the comment header" %>
<%@ Property Name="NameSpace" Type="String" Category="Context" Default="Lexus" Description="The namespace to use for this class" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="Table that the object is based on." %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Assembly Name="System.Data" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Import Namespace="System.Data" %>
// File: <%= GetClassName(SourceTable) %>.cs
// <%=DateTime.Now.ToShortDateString() %>: <%=DevelopersName %> Original Version
//
// ===================================================================
[Serializable]
public class <%= GetClassName(SourceTable) %>
{
<% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
public <%= GetCSharpVariableType(SourceTable.Columns[i]) %> <%= SourceTable.Columns[i].Name %>{get;set;}
<% if (i < SourceTable.Columns.Count - 1) Response.Write("\r\n"); %>
<% } %>
}
<script runat="template">
script#region script
public string GetMemberVariableDeclarationStatement(ColumnSchema column)
{
return GetMemberVariableDeclarationStatement("private", column);
}
public string GetMemberVariableDeclarationStatement(string protectionLevel, ColumnSchema column)
{
string statement = protectionLevel + " ";
statement += GetCSharpVariableType(column) + " " + GetMemberVariableName(column);
string defaultValue = GetMemberVariableDefaultValue(column);
if (defaultValue != "")
{
statement += " = " + defaultValue;
}
statement += ";";
return statement;
}
public string GetConstructorParameters()
{
string ret = "";
foreach(ColumnSchema column in SourceTable.Columns)
{
ret += GetCSharpVariableType(column) + " " + GetCamelCaseName(GetPropertyName(column)) + ",\n\t\t\t";
}
return ret.Substring(0, ret.Length - 5);
}
public string GetAssignValue()
{
string ret = "";
foreach(ColumnSchema column in SourceTable.Columns)
{
ret += GetMemberVariableName(column) + (new String(' ', GetPropertyNameMaxLength() - GetPropertyNameLength(column))) + " = " + GetCamelCaseName(GetPropertyName(column)) + ";\n\t\t\t";
}
return ret;
}
public string GetReaderAssignmentStatement(ColumnSchema column, int index)
{
string statement = "if (!reader.IsDBNull(" + index.ToString() + ")) ";
statement += GetMemberVariableName(column) + " = ";
if (column.Name.EndsWith("TypeCode")) statement += "(" + column.Name + ")";
statement += "reader." + GetReaderMethod(column) + "(" + index.ToString() + ");";
return statement;
}
public string GetCamelCaseName(string value)
{
//return value.Substring(0, 1).ToLower() + value.Substring(1);
//lexus modify
return value;
}
public string GetMemberVariableName(ColumnSchema column)
{
//string propertyName = GetPropertyName(column);
string propertyName = column.Name;
string memberVariableName = "_" + GetCamelCaseName(propertyName);
return memberVariableName;
}
public string GetPropertyName(ColumnSchema column)
{
string propertyName = column.Name;
if (propertyName == column.Table.Name + "Name") return "Name";
if (propertyName == column.Table.Name + "Description") return "Description";
if (propertyName.EndsWith("TypeCode")) propertyName = propertyName.Substring(0, propertyName.Length - 4);
return propertyName;
}
public int GetPropertyNameLength(ColumnSchema column)
{
return (GetPropertyName(column)).Length;
}
public int GetPropertyNameMaxLength()
{
int ret = 0;
foreach(ColumnSchema column in SourceTable.Columns)
{
ret = ret < GetPropertyNameLength(column)?GetPropertyNameLength(column):ret;
}
return ret;
}
public string GetMemberVariableDefaultValue(ColumnSchema column)
{
if(column.IsPrimaryKeyMember)
{
return "";
}
switch (column.DataType)
{
case DbType.Guid:
{
return "Guid.Empty";
}
case DbType.AnsiString:
case DbType.AnsiStringFixedLength:
case DbType.String:
case DbType.StringFixedLength:
{
return "String.Empty";
}
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;
}
}
}
public string GetReaderMethod(ColumnSchema column)
{
switch (column.DataType)
{
case DbType.Byte:
{
return "GetByte";
}
case DbType.Int16:
{
return "GetInt16";
}
case DbType.Int32:
{
return "GetInt32";
}
case DbType.Int64:
{
return "GetInt64";
}
case DbType.AnsiStringFixedLength:
case DbType.AnsiString:
case DbType.String:
case DbType.StringFixedLength:
{
return "GetString";
}
case DbType.Boolean:
{
return "GetBoolean";
}
case DbType.Guid:
{
return "GetGuid";
}
case DbType.Currency:
case DbType.Decimal:
{
return "GetDecimal";
}
case DbType.DateTime:
case DbType.Date:
{
return "GetDateTime";
}
case DbType.Binary:
{
return "GetBytes";
}
default:
{
return "__SQL__" + column.DataType;
}
}
}
public string GetClassName(TableSchema table)
{
/**//*
if (table.Name.EndsWith("s"))
{
return table.Name.Substring(0, table.Name.Length - 1);
}
else
{
return table.Name;
}
*/
if(table==null)
{
return null;
}
//lexus modify
//return table.Name + "Info";
int len=table.Name.Length;
string result=string.Empty;
if(table.Name.EndsWith("ies"))
{
result=table.Name.Substring(0,len-3)+"y";
}
else
{
result=table.Name.Substring(0,len-1);
}
return result;
}
public string GetSqlDbType(ColumnSchema column)
{
switch (column.NativeType)
{
case "bigint": return "BigInt";
case "binary": return "Binary";
case "bit": return "Bit";
case "char": return "Char";
case "datetime": return "DateTime";
case "decimal": return "Decimal";
case "float": return "Float";
case "image": return "Image";
case "int": return "Int";
case "money": return "Money";
case "nchar": return "NChar";
case "ntext": return "NText";
case "numeric": return "Decimal";
case "nvarchar": return "NVarChar";
case "real": return "Real";
case "smalldatetime": return "SmallDateTime";
case "smallint": return "SmallInt";
case "smallmoney": return "SmallMoney";
case "sql_variant": return "Variant";
case "sysname": return "NChar";
case "text": return "Text";
case "timestamp": return "Timestamp";
case "tinyint": return "TinyInt";
case "uniqueidentifier": return "UniqueIdentifier";
case "varbinary": return "VarBinary";
case "varchar": return "VarChar";
default: return "__UNKNOWN__" + column.NativeType;
}
}
public string GetPrimaryKeyType(TableSchema table)
{
if (table.PrimaryKey != null)
{
if (table.PrimaryKey.MemberColumns.Count == 1)
{
return GetCSharpVariableType(table.PrimaryKey.MemberColumns[0]);
}
else
{
throw new ApplicationException("This template will not work on primary keys with more than one member column.");
}
}
else
{
throw new ApplicationException("This template will only work on tables with a primary key.");
}
}
public override string GetFileName()
{
return this.GetClassName(this.SourceTable) + ".cs";
}
#endregion script
</script>
<%@ Property Name="DevelopersName" Type="String" Category="Context" Default="Lexus" Description="The name to include in the comment header" %>
<%@ Property Name="NameSpace" Type="String" Category="Context" Default="Lexus" Description="The namespace to use for this class" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="Table that the object is based on." %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Assembly Name="System.Data" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Import Namespace="System.Data" %>
// File: <%= GetClassName(SourceTable) %>.cs
// <%=DateTime.Now.ToShortDateString() %>: <%=DevelopersName %> Original Version
//
// ===================================================================
[Serializable]
public class <%= GetClassName(SourceTable) %>
{
<% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
public <%= GetCSharpVariableType(SourceTable.Columns[i]) %> <%= SourceTable.Columns[i].Name %>{get;set;}
<% if (i < SourceTable.Columns.Count - 1) Response.Write("\r\n"); %>
<% } %>
}
<script runat="template">
script#region script
public string GetMemberVariableDeclarationStatement(ColumnSchema column)
{
return GetMemberVariableDeclarationStatement("private", column);
}
public string GetMemberVariableDeclarationStatement(string protectionLevel, ColumnSchema column)
{
string statement = protectionLevel + " ";
statement += GetCSharpVariableType(column) + " " + GetMemberVariableName(column);
string defaultValue = GetMemberVariableDefaultValue(column);
if (defaultValue != "")
{
statement += " = " + defaultValue;
}
statement += ";";
return statement;
}
public string GetConstructorParameters()
{
string ret = "";
foreach(ColumnSchema column in SourceTable.Columns)
{
ret += GetCSharpVariableType(column) + " " + GetCamelCaseName(GetPropertyName(column)) + ",\n\t\t\t";
}
return ret.Substring(0, ret.Length - 5);
}
public string GetAssignValue()
{
string ret = "";
foreach(ColumnSchema column in SourceTable.Columns)
{
ret += GetMemberVariableName(column) + (new String(' ', GetPropertyNameMaxLength() - GetPropertyNameLength(column))) + " = " + GetCamelCaseName(GetPropertyName(column)) + ";\n\t\t\t";
}
return ret;
}
public string GetReaderAssignmentStatement(ColumnSchema column, int index)
{
string statement = "if (!reader.IsDBNull(" + index.ToString() + ")) ";
statement += GetMemberVariableName(column) + " = ";
if (column.Name.EndsWith("TypeCode")) statement += "(" + column.Name + ")";
statement += "reader." + GetReaderMethod(column) + "(" + index.ToString() + ");";
return statement;
}
public string GetCamelCaseName(string value)
{
//return value.Substring(0, 1).ToLower() + value.Substring(1);
//lexus modify
return value;
}
public string GetMemberVariableName(ColumnSchema column)
{
//string propertyName = GetPropertyName(column);
string propertyName = column.Name;
string memberVariableName = "_" + GetCamelCaseName(propertyName);
return memberVariableName;
}
public string GetPropertyName(ColumnSchema column)
{
string propertyName = column.Name;
if (propertyName == column.Table.Name + "Name") return "Name";
if (propertyName == column.Table.Name + "Description") return "Description";
if (propertyName.EndsWith("TypeCode")) propertyName = propertyName.Substring(0, propertyName.Length - 4);
return propertyName;
}
public int GetPropertyNameLength(ColumnSchema column)
{
return (GetPropertyName(column)).Length;
}
public int GetPropertyNameMaxLength()
{
int ret = 0;
foreach(ColumnSchema column in SourceTable.Columns)
{
ret = ret < GetPropertyNameLength(column)?GetPropertyNameLength(column):ret;
}
return ret;
}
public string GetMemberVariableDefaultValue(ColumnSchema column)
{
if(column.IsPrimaryKeyMember)
{
return "";
}
switch (column.DataType)
{
case DbType.Guid:
{
return "Guid.Empty";
}
case DbType.AnsiString:
case DbType.AnsiStringFixedLength:
case DbType.String:
case DbType.StringFixedLength:
{
return "String.Empty";
}
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;
}
}
}
public string GetReaderMethod(ColumnSchema column)
{
switch (column.DataType)
{
case DbType.Byte:
{
return "GetByte";
}
case DbType.Int16:
{
return "GetInt16";
}
case DbType.Int32:
{
return "GetInt32";
}
case DbType.Int64:
{
return "GetInt64";
}
case DbType.AnsiStringFixedLength:
case DbType.AnsiString:
case DbType.String:
case DbType.StringFixedLength:
{
return "GetString";
}
case DbType.Boolean:
{
return "GetBoolean";
}
case DbType.Guid:
{
return "GetGuid";
}
case DbType.Currency:
case DbType.Decimal:
{
return "GetDecimal";
}
case DbType.DateTime:
case DbType.Date:
{
return "GetDateTime";
}
case DbType.Binary:
{
return "GetBytes";
}
default:
{
return "__SQL__" + column.DataType;
}
}
}
public string GetClassName(TableSchema table)
{
/**//*
if (table.Name.EndsWith("s"))
{
return table.Name.Substring(0, table.Name.Length - 1);
}
else
{
return table.Name;
}
*/
if(table==null)
{
return null;
}
//lexus modify
//return table.Name + "Info";
int len=table.Name.Length;
string result=string.Empty;
if(table.Name.EndsWith("ies"))
{
result=table.Name.Substring(0,len-3)+"y";
}
else
{
result=table.Name.Substring(0,len-1);
}
return result;
}
public string GetSqlDbType(ColumnSchema column)
{
switch (column.NativeType)
{
case "bigint": return "BigInt";
case "binary": return "Binary";
case "bit": return "Bit";
case "char": return "Char";
case "datetime": return "DateTime";
case "decimal": return "Decimal";
case "float": return "Float";
case "image": return "Image";
case "int": return "Int";
case "money": return "Money";
case "nchar": return "NChar";
case "ntext": return "NText";
case "numeric": return "Decimal";
case "nvarchar": return "NVarChar";
case "real": return "Real";
case "smalldatetime": return "SmallDateTime";
case "smallint": return "SmallInt";
case "smallmoney": return "SmallMoney";
case "sql_variant": return "Variant";
case "sysname": return "NChar";
case "text": return "Text";
case "timestamp": return "Timestamp";
case "tinyint": return "TinyInt";
case "uniqueidentifier": return "UniqueIdentifier";
case "varbinary": return "VarBinary";
case "varchar": return "VarChar";
default: return "__UNKNOWN__" + column.NativeType;
}
}
public string GetPrimaryKeyType(TableSchema table)
{
if (table.PrimaryKey != null)
{
if (table.PrimaryKey.MemberColumns.Count == 1)
{
return GetCSharpVariableType(table.PrimaryKey.MemberColumns[0]);
}
else
{
throw new ApplicationException("This template will not work on primary keys with more than one member column.");
}
}
else
{
throw new ApplicationException("This template will only work on tables with a primary key.");
}
}
public override string GetFileName()
{
return this.GetClassName(this.SourceTable) + ".cs";
}
#endregion script
</script>
这个模板里有一些函数还是挺有用的,大家可以看看
另外,codesmith 4.1.2我用的版本,也不是一开始就支持sqlite的,这里引用了园友乱世经典修改后的驱动http://www.cnblogs.com/chsword/archive/2008/07/08/sqliteschemaproviders.html
生成的数据类型还是有一些对不上,自己手工改一下吧,因为工作量不是很大,
-
关于分层架构中的业务实体层的使用一直不太清楚,可否指点一下?
2007-03-23 09:10 671我知道业务逻辑层又可细分为三个层次,分别是业务外观层业务规则层 ... -
xml反串行化
2007-07-02 17:23 7321using System; 2using Syste ... -
WriteXmlSchema(xsdFileName)和GetXmlSchema()输出的内容的差异
2007-07-04 19:00 881利用DataSet.ReadXml载入一个xml文件,再使用G ... -
对websharp中aspect的改进(待续)
2007-11-17 14:27 692缘起 为了在我的《朗志轻量级项目管理解决方案》项目中应用 ... -
WebSharp Aspect改进(续2)
2007-11-19 21:39 700接着上次在《朗志轻量级项目管理解决方案》中对Aspec ... -
TreeView(树形控件)中常用到的属性和事件
2007-11-19 22:22 12941.TreeView(树形控件) ... -
有没有适合的的面向对象的查询语言(Object Query Language)
2007-11-28 10:15 759在我做《朗志轻量级项目管理解决方案》的过程中,我希望 ... -
问题解答集
2007-11-29 18:11 4401 如何在源代码的目录下添加一个测试文件 ... -
FckEditor自定义按钮
2007-11-29 18:35 830目录 FckEditor自定义按钮 1 目录 ... -
GhstDoc2.1.1使用手册
2007-11-29 18:39 721目录 GhstDoc2.1.1使用手册 1 ... -
Log4net使用说明
2007-11-29 18:44 785Log4net使用说明 1 修改历史纪录 ... -
MySQLHelper类使用说明
2007-11-29 18:46 1315目录 MySQLHelper类使用说明 1 目录 ... -
NDoc1.3.1使用手册
2007-11-29 18:47 765目录 NDoc1.3.1使用手册 1 目录 ... -
程序中操作Word
2007-11-29 18:52 728目录 程序中操作Word 1 目录 2 ... -
利用SMTP服务发送电子邮件
2007-11-29 18:58 1352目录 利用SMTP服务发送电子邮件 1 目录 ... -
程序中操作Excel
2007-11-29 18:59 637目录 程序中操作Excel 1 目录 ... -
访问被拒绝:“AjaxPro”的解决方案
2007-11-29 19:01 531目录 访问被拒绝:&qu ... -
sqlserver的版本号
2008-02-27 21:01 819当你安装了sqlserver 2005之后你就可以使用sqls ... -
在安装有VS2008beta2版本的机子上使用vs2005进行部署出现问题的解决方法
2008-02-27 21:13 679我知道,2008rtm发布已经很久了,不巧的是同学在我的机子上 ... -
Berkeley Db Associate关联数据函数的使用
2008-07-31 21:42 838Code<!--<br /><br ...
相关推荐
codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip codesmith 模板codesmith nettiers-2.3.1.zip...
CodeSmith+注册码(注册机)CodeSmith+注册码(注册机)CodeSmith+注册码(注册机)CodeSmith+注册码(注册机)CodeSmith+注册码(注册机)CodeSmith+注册码(注册机)CodeSmith+注册码(注册机)CodeSmith+注册码...
CodeSmith教程[全].pdf CodeSmith教程[全].pdf CodeSmith教程[全].pdf CodeSmith教程[全].pdf CodeSmith教程[全].pdf CodeSmith教程[全].pdf CodeSmith教程[全].pdf CodeSmith教程[全].pdf CodeSmith教程[全].pdf ...
MySQL数据库CodeSmith模板是一种高效的代码生成工具,它利用CodeSmith的强大功能,自动化地根据MySQL数据库中的表结构生成相应的代码,从而极大地提高了开发效率。CodeSmith是一款流行的数据驱动的代码生成器,它...
CodeSmith是一款强大的代码生成工具,尤其在ASP.NET和C#开发环境中被广泛使用。它能够自动根据数据库中的表结构生成C#实体类,极大地提高了开发效率,减少了手动编写重复代码的工作量。 首先,CodeSmith的核心功能...
CodeSmith是一款强大的代码生成工具,尤其对于程序员和开发团队来说,它能显著提高开发效率,减少重复编写基础代码的工作量。在标题中提到的"CodeSmith 6.0 + 序列号",指的是该软件的第六个主要版本,并且提供了一...
CodeSmith是一款强大的代码生成工具,尤其对于asp.net开发者而言,它极大地提高了开发效率,帮助程序员从繁琐的手动编码工作中解放出来。本教程专为初学者设计,旨在引导你快速掌握CodeSmith的基本用法和高级特性。 ...
CodeSmith 是一种基于模板的代码生成工具,它使用类似于 ASP.NET 的语法来生成任意类型的代码或文本。与其他许多代码生成工具不同,CodeSmith 不要求您订阅特定的应用程序设计或体系结构。使用 CodeSmith,可以生成...
CodeSmith是一款强大的代码生成工具,尤其在快速开发领域有着广泛的应用。版本6.5是它的一个重要里程碑,其中包含了对Nhibernate框架的支持,这使得开发者能够更高效地生成与Nhibernate配合的实体类和数据访问层代码...
CodeSmith是一款强大的代码生成工具,尤其在提升软件开发效率方面有着显著的作用。它允许开发者通过模板语言来定制自己的代码生成规则,从而自动化地创建出符合特定项目需求的源代码。这款工具广泛应用于国内的开发...
在IT行业中,数据库连接是开发过程中的重要环节,特别是在使用代码生成工具如CodeSmith时。本文将详述CodeSmith 8.0.1版本在尝试连接到PostgreSQL数据库时遇到的问题,以及如何通过添加必要的DLL文件和理解连接字符...
CodeSmith是一款强大的代码生成工具,尤其适用于快速生成数据库相关的实体模型、数据访问层以及业务逻辑层代码。在本文中,我们将深入探讨如何解决在使用CodeSmith 8.0时遇到的MySQL实体没有字段注释和表注释的问题...
CodeSmith Professional是一款强大的代码生成工具,它为程序员和软件开发者提供了高效的代码自动化生成解决方案。这款软件结合了Power Design,使得数据库设计与代码生成之间的工作流程更为顺畅,极大地提高了开发...
CodeSmith是一款强大的代码生成工具,尤其在快速构建企业级应用的三层架构方面表现突出。它通过自定义模板,能够帮助开发者高效地生成数据访问层(DAL)、业务逻辑层(BLL)以及表现层(UI)的代码,显著提高开发...
CodeSmith是一款强大的代码生成工具,尤其在数据库对象到源代码的转换方面表现出色。它允许开发者通过使用模板语言创建自定义的代码生成方案,极大地提高了开发效率和代码一致性。"简单的CodeSmith模板"这个主题意味...
CodeSmith 是一种基于模板的代码生成工具,它使用类似于 ASP.NET 的语法来生成任意类型的代码或文本。与其他许多代码生成工具不同,CodeSmith 不要求您订阅特定的应用程序设计或体系结构。使用 CodeSmith,可以生成...
CodeSmith 是一种基于模板的代码生成工具,它使用类似于 ASP.NET 的语法来生成任意类型的代码或文本。与其他许多代码生成工具不同,CodeSmith 不要求您订阅特定的应用程序设计或体系结构。使用 CodeSmith,可以生成...
CodeSmith是一款强大的代码生成工具,它能够帮助开发者自动生成各种编程语言中的常见代码,极大地提高了开发效率。在本案例中,我们关注的是"CodeSmith IBatis1.92模板",这表明它是一个专用于生成IBatis框架相关...
《使用Codesmith生成C#实体类的简易模板详解》 在软件开发过程中,尤其是在与数据库交互的业务逻辑层,实体类的创建是一项繁琐且重复的工作。 Codesmith是一款强大的代码生成工具,它允许开发者通过定制模板来自动...
《codesmith DatabaseGen:高效数据库生成工具的探索与实践》 在IT行业中,代码生成工具是提高开发效率的重要辅助手段,而"codesmith"正是这样一款备受开发者青睐的工具。"codesmith DatabaseGen"则是codesmith针对...