<%@ CodeTemplate Language="C#" TargetLanguage="C#" ResponseEncoding="UTF-8" Description="Create Normal Object" %>
<%@ Property Name="DeveloperName" Type="String" Category="Context" Default="" Description="Creator" %>
<%@ Property Name="NameSpace" Type="String" Category="Context" Default="" Description="Namespace" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="Table which will be Build" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Assembly Name="System.Data" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Import Namespace="System.Data" %>
using System;
using System.Data;
using System.Collections.Generic;
using System.Text;
using Hisign.Library.Data.DataObjects;
namespace <%= NameSpace %>
{
/// <summary>
///创 建 人: <%= DeveloperName %>
///创建日期: <%= DateTime.Now.Date.ToString("yyyy-MM-dd")%>
///文件描述: <%= SourceTable.Name %> 表对应实体
/// </summary>
[Serializable]
public class <%= GetPropertyNameFromDBName(SourceTable.Name) %>Module : IDataObject
{
public <%= GetPropertyNameFromDBName(SourceTable.Name) %>Module()
{}
#region 属性
///<summary>
///表名
///</summary>
public string TableName
{
get
{
return "<%=SourceTable.Name %>";
}
}
<% foreach (ColumnSchema column in SourceTable.Columns)
{
%>
/// <summary>
/// <%= column.Description.ToString()%>
/// </summary>
[DataProperty("<%=column.Name%>",Oracle.DataAccess.Client.OracleDbType.<%=NativType2OracleType(column.NativeType)%><% if (column.IsPrimaryKeyMember) { %>,IsKey=true<% } %>)]
public <%= NativType2CSharpType(column.NativeType)%> <%= GetPropertyNameFromDBName(column.Name) %>
{
get{ return _<%= GetPropertyNameFromDBName(column.Name)%>; }
set{ _<%= GetPropertyNameFromDBName(column.Name)%> = value; }
}private <%= NativType2CSharpType(column.NativeType)%> _<%= GetPropertyNameFromDBName(column.Name) %> = <%= NativTypeDefaultValue(column.NativeType)%>;
<%
}
%>
#endregion
}
}
<script runat="template">
//将数据库类型转化为C#类型
public string DataType2CSharpType(System.Data.DbType dbType)
{
switch (dbType)
{
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.DateTime2:
return "DateTime";
case DbType.DateTimeOffset:
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";
case DbType.Xml:
return "string";
default:
return "object";
}
}
//根据数据库类型设置默认值
public string DataTypeDefaultValue(System.Data.DbType dbType)
{
switch (dbType)
{
case DbType.AnsiString:
return "String.Empty";
case DbType.AnsiStringFixedLength:
return "String.Empty";
case DbType.Boolean:
return "false";
case DbType.Currency:
return "0";
case DbType.Date:
return "DateTime.MinValue";
case DbType.DateTime:
return "DateTime.MinValue";
case DbType.DateTime2:
return "DateTime.MinValue";
case DbType.DateTimeOffset:
return "DateTime.MinValue";
case DbType.Decimal:
return "0.0m";
case DbType.Double:
return "0.0f";
case DbType.Guid:
return "Guid.Empty";
case DbType.Int16:
return "(short)0";
case DbType.Int32:
return "(int)0";
case DbType.Int64:
return "(long)0";
case DbType.Object:
return "new object()";
case DbType.SByte:
return "(sbyte)0";
case DbType.Single:
return "0F";
case DbType.String:
return "String.Empty";
case DbType.StringFixedLength:
return "String.Empty";
case DbType.Time:
return "new DateTime(1900,1,1,0,0,0,0)"; //return "DateTime.MaxValue";
case DbType.UInt16:
return "(ushort)0";
case DbType.UInt32:
return "(uint)0";
case DbType.UInt64:
return "(ulong)0";
case DbType.VarNumeric:
return "(decimal)0";
case DbType.Xml:
return "String.Empty";
default:
return "null";
}
}
//数据库类型转化为OracleDataAccess类型
public string NativType2OracleType(System.String nativeType)
{
string type = nativeType.ToLower();
switch(type)
{
case "bfile":
return "BFile";
case "blob":
return "Blob";
case "byte":
return "Byte";
case "char":
return "Char";
case "clob":
return "Clob";
case "date":
return "Date";
case "decimal":
return "Decimal";
case "double":
return "Double";
case "long":
return "Long";
case "longraw":
return "LongRaw";
case "int16":
return "Int16";
case "int32":
return "Int32";
case "int64":
return "Int64";
case "intervalds":
return "IntervalDS";
case "intervalym":
return "IntervalYM";
case "nclob":
return "NClob";
case "nchar":
return "NChar";
case "nvarchar2":
return "NVarchar2";
case "raw":
return "Raw";
case "refcursor":
return "RefCursor";
case "single":
return "Single";
case "timestamp":
return "TimeStamp";
case "timestampltz":
return "TimeStampLTZ";
case "timestamptz":
return "TimeStampTZ";
case "varchar2":
return "Varchar2";
case "xmltype":
return "XmlType";
case "array":
return "Array";
case "object":
return "Object";
case "ref":
return "Ref";
case "binarydouble":
return "BinaryDouble";
case "binaryfloat":
return "BinaryFloat";
default:
return "Raw";
}
}
//数据库类型转化为C#类型
public string NativType2CSharpType(System.String nativeType)
{
string type = nativeType.ToLower();
switch(type)
{
case "bfile":
return "byte[]";
case "blob":
return "byte[]";
case "byte":
return "Byte";
case "char":
return "String";
case "clob":
return "String";
case "date":
return "DateTime";
case "decimal":
return "Decimal";
case "double":
return "Double";
case "long":
return "String";
case "longraw":
return "byte[]";
case "int16":
return "Int16";
case "int32":
return "int";
case "int64":
return "Int64";
case "intervalds":
return "Object";
case "intervalym":
return "Object";
case "nclob":
return "byte[]";
case "nchar":
return "String";
case "nvarchar2":
return "String";
case "raw":
return "byte[]";
case "refcursor":
return "Object";
case "single":
return "Object";
case "timestamp":
return "Object";
case "timestampltz":
return "Object";
case "timestamptz":
return "Object";
case "varchar2":
return "String";
case "xmltype":
return "String";
case "array":
return "Array";
case "object":
return "Object";
case "ref":
return "Object";
case "binarydouble":
return "Object";
case "binaryfloat":
return "Object";
default:
return "Object";
}
}
//根据数据库类型设置默认值
public string NativTypeDefaultValue(System.String nativeType)
{
string type = nativeType.ToLower();
switch(type)
{
case "bfile":
return "null";
case "blob":
return "null";
case "byte":
return "null";
case "char":
return "String.Empty";
case "clob":
return "String.Empty";
case "date":
return "null";
case "decimal":
return "0";
case "double":
return "0";
case "long":
return "String.Empty";
case "longraw":
return "null";
case "int16":
return "0";
case "int32":
return "0";
case "int64":
return "0";
case "intervalds":
return "null";
case "intervalym":
return "null";
case "nclob":
return "null";
case "nchar":
return "String.Empty";
case "nvarchar2":
return "String.Empty";
case "raw":
return "null";
case "refcursor":
return "null";
case "single":
return "null";
case "timestamp":
return "null";
case "timestampltz":
return "null";
case "timestamptz":
return "null";
case "varchar2":
return "String.Empty";
case "xmltype":
return "String.Empty";
case "array":
return "null";
case "object":
return "null";
case "ref":
return "null";
case "binarydouble":
return "null";
case "binaryfloat":
return "null";
default:
return "null";
}
}
//根据列名获取变量名
public string GetPropertyNameFromDBName(string dbName)
{
string[] names = dbName.Split('_');
string propertyName = string.Empty;
foreach (string name in names)
{
if(!string.IsNullOrEmpty(name))
{
string newName = name.ToLower();
propertyName += newName.ToCharArray()[0].ToString().ToUpper() + newName.Substring(1);
}
}
return propertyName;
}
</script>
Oracle实体类模板
最新推荐文章于 2023-02-04 13:09:42 发布