Oracle实体类模板

来源:互联网 发布:国家税务局网络发票 编辑:程序博客网 时间:2024/05/22 03:04
<%@ 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>

	
				
		
原创粉丝点击