CodeSmith自动生成实体类文件(数据库中所有表的实体类)!
来源:互联网 发布:it行业是什么 编辑:程序博客网 时间:2024/06/10 19:03
此模版需要执行2次
第1次执行产生.cs文件,然后报“此文件被进程占用”的提示,算是一个Bug吧,还在改进
第2次执行产生get()和set()
<%@ CodeTemplate Language="C#" TargetLanguage="C#" Inherits="OutputFileCodeTemplate" Description="Template description here." %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Assembly Name="System.Design" %>
<%@ Assembly Name="CodeSmith.BaseTemplates" %>
<%@ Assembly Name="CodeSmith.CustomProperties" %>
<%@ Import Namespace="CodeSmith.BaseTemplates" %>
<%@ Import Namespace="CodeSmith.CustomProperties" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Text.RegularExpressions" %>
<%@ Import Namespace="CodeSmith.CustomProperties" %>
<%@ Property Name="SourceData" Type="SchemaExplorer.DatabaseSchema" Optional="False" Category="Context" Description="" %>
<%@ Property Name="Output" Type="System.String" Default="D:/MyModel" Optional="False" Category="Context" Description="" %>
<%
Render();
%>
<script runat="template">
//Table List
public TableSchemaCollection GetTableCollection(DatabaseSchema dataBase)
...{
TableSchemaCollection tables = new TableSchemaCollection(dataBase.Tables);
return tables;
}
//Column Type
public string GetType(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 "int";
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;
}
}
}
//Go
public void Render()
...{
TableSchemaCollection tables = GetTableCollection(SourceData);
foreach(TableSchema dt in tables)
...{
if(Directory.Exists(Output) == false)
...{
Directory.CreateDirectory(Output);
}
string strFileName = Output + "/" + dt.Name.ToString().Replace("dbo.","") + ".cs";
if(File.Exists(strFileName) == false)
...{
File.Create(strFileName);
}
}
foreach(TableSchema dt in tables)
...{
string strFileName = Output + "/" + dt.Name.ToString().Replace("dbo.","") + ".cs";
FileStream fs = new FileStream(strFileName,FileMode.Create,FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.UTF8);
sw.WriteLine("using System;");
sw.WriteLine("using System.Collections.Generic;");
sw.WriteLine("using System.Text;");
sw.WriteLine("using System;");
sw.WriteLine("using System.Data;");
sw.WriteLine("");
sw.WriteLine("#region ==== " + dt.Name.ToString().Replace("dbo.","") + " ====");
sw.WriteLine("public class " + dt.Name.ToString().Replace("dbo.",""));
sw.WriteLine("{");
sw.WriteLine(" public " + dt.Name.ToString().Replace("dbo.",""));
sw.WriteLine(" {}");
sw.WriteLine(" #region ==== Variable ====");
foreach(ColumnSchema cs in dt.Columns)
...{
sw.WriteLine(" //" + cs.Description);
sw.WriteLine(" private " + GetType(cs)+ " " + cs.Name.ToLower() + ";");
}
sw.WriteLine(" #endregion");
foreach(ColumnSchema cs in dt.Columns)
...{
sw.WriteLine(" ///<summary>");
sw.WriteLine(" ///" + cs.Description);
sw.WriteLine(" ///</summary>");
sw.WriteLine(" public " + GetType(cs) + " " + cs.Name.ToString());
sw.WriteLine(" {");
sw.WriteLine(" get");
sw.WriteLine(" {");
sw.WriteLine(" return " + cs.Name.ToString().ToLower() + ";");
sw.WriteLine(" }");
sw.WriteLine(" set");
sw.WriteLine(" {");
sw.WriteLine(" " + cs.Name.ToString().ToLower() + " = value;");
sw.WriteLine(" }");
sw.WriteLine(" }");
}
sw.WriteLine("}");
sw.WriteLine("#endregion");
sw.Close();
}
}
</script>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Assembly Name="System.Design" %>
<%@ Assembly Name="CodeSmith.BaseTemplates" %>
<%@ Assembly Name="CodeSmith.CustomProperties" %>
<%@ Import Namespace="CodeSmith.BaseTemplates" %>
<%@ Import Namespace="CodeSmith.CustomProperties" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Text.RegularExpressions" %>
<%@ Import Namespace="CodeSmith.CustomProperties" %>
<%@ Property Name="SourceData" Type="SchemaExplorer.DatabaseSchema" Optional="False" Category="Context" Description="" %>
<%@ Property Name="Output" Type="System.String" Default="D:/MyModel" Optional="False" Category="Context" Description="" %>
<%
Render();
%>
<script runat="template">
//Table List
public TableSchemaCollection GetTableCollection(DatabaseSchema dataBase)
...{
TableSchemaCollection tables = new TableSchemaCollection(dataBase.Tables);
return tables;
}
//Column Type
public string GetType(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 "int";
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;
}
}
}
//Go
public void Render()
...{
TableSchemaCollection tables = GetTableCollection(SourceData);
foreach(TableSchema dt in tables)
...{
if(Directory.Exists(Output) == false)
...{
Directory.CreateDirectory(Output);
}
string strFileName = Output + "/" + dt.Name.ToString().Replace("dbo.","") + ".cs";
if(File.Exists(strFileName) == false)
...{
File.Create(strFileName);
}
}
foreach(TableSchema dt in tables)
...{
string strFileName = Output + "/" + dt.Name.ToString().Replace("dbo.","") + ".cs";
FileStream fs = new FileStream(strFileName,FileMode.Create,FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.UTF8);
sw.WriteLine("using System;");
sw.WriteLine("using System.Collections.Generic;");
sw.WriteLine("using System.Text;");
sw.WriteLine("using System;");
sw.WriteLine("using System.Data;");
sw.WriteLine("");
sw.WriteLine("#region ==== " + dt.Name.ToString().Replace("dbo.","") + " ====");
sw.WriteLine("public class " + dt.Name.ToString().Replace("dbo.",""));
sw.WriteLine("{");
sw.WriteLine(" public " + dt.Name.ToString().Replace("dbo.",""));
sw.WriteLine(" {}");
sw.WriteLine(" #region ==== Variable ====");
foreach(ColumnSchema cs in dt.Columns)
...{
sw.WriteLine(" //" + cs.Description);
sw.WriteLine(" private " + GetType(cs)+ " " + cs.Name.ToLower() + ";");
}
sw.WriteLine(" #endregion");
foreach(ColumnSchema cs in dt.Columns)
...{
sw.WriteLine(" ///<summary>");
sw.WriteLine(" ///" + cs.Description);
sw.WriteLine(" ///</summary>");
sw.WriteLine(" public " + GetType(cs) + " " + cs.Name.ToString());
sw.WriteLine(" {");
sw.WriteLine(" get");
sw.WriteLine(" {");
sw.WriteLine(" return " + cs.Name.ToString().ToLower() + ";");
sw.WriteLine(" }");
sw.WriteLine(" set");
sw.WriteLine(" {");
sw.WriteLine(" " + cs.Name.ToString().ToLower() + " = value;");
sw.WriteLine(" }");
sw.WriteLine(" }");
}
sw.WriteLine("}");
sw.WriteLine("#endregion");
sw.Close();
}
}
</script>
- CodeSmith自动生成实体类文件(数据库中所有表的实体类)!
- codesmith 自动生成实体类的模板
- CodeSmith生成数据库视图实体类
- CodeSmith自动生成业务实体类的模板代码
- 用CodeSmith生成数据库实体类的代码
- CodeSmith模板(生成实体类)
- CodeSmith生成数据表实体类
- CodeSmith生成实体类模板
- CodeSmith----02.生成数据库表对应实体
- 使用CodeSmith生成oracle数据库表的实体层(Model)
- 使用CodeSmith生成oracle数据库表的实体层(Model)
- MyEclipse如何自动生成数据库表的Java实体类
- 使用CodeSmith生成数据实体类
- 二.codesmith 生成 hibernate 中的实体类
- 在Eclipse中从数据库表自动生成hibernate的java实体类
- 在Eclipse中从数据库表自动生成hibernate的java实体类
- 自动生成实体类
- 自动生成实体类
- 几种磁带的格式
- 斑马编程指令中文版
- 《精通Hibernate》
- 监视网络适配器的速度
- SCJP SCWCD simulaor+crack
- CodeSmith自动生成实体类文件(数据库中所有表的实体类)!
- 优化IIS默认的500-100报错页面
- Orcle急急如律令 = =!
- 七律*长征
- C语言如何连接数据库?
- Ajax
- 802.1x网络访问认证技术
- 在pix或asa如何防止内网用户乱改ip配置案例
- 七律*人民解放军占领南京