Exemplo n.º 1
0
 public static string GetDataObject(Settings cf, string tableName, doColumns.uoListColumns listColumn, doPKs.uoListPKs listPK, doRemarks.uoListRemarks listRemarks)
 {
     StringBuilder sb_ret = new StringBuilder();
     sb_ret.AppendLine(string.Format(@"
     //------------------------------------------------------------------------------
     // <auto-generated>
     //     Date time = {1}
     //     This code was generated by tool,Version={0}.
     //     Changes to this code may cause incorrect behavior and will be lost if
     //     the code is regenerated.
     // </auto-generated>
     //------------------------------------------------------------------------------", Config.Version, DateTime.Now));
     sb_ret.AppendLine("using System;");
     sb_ret.AppendLine("using System.Collections.Generic;");
     sb_ret.AppendLine("using System.Text;");
     sb_ret.AppendLine("using DataAccess.Data;");
     sb_ret.AppendLine("using DataMapping;");
     sb_ret.AppendLine("");
     sb_ret.Append("namespace ").AppendLine(cf.DataObjectNameSpace);
     sb_ret.AppendLine("{");
     sb_ret.AppendLine(string.Format("\tpublic class {1}{0} : DOBase<{1}{0}.{2}{0}, {1}{0}.{3}{0}>", tableName, cf.DOPrefix, cf.UOPrefix, cf.UOListPrefix));
     sb_ret.AppendLine("\t{");
     sb_ret.AppendLine("\t\tpublic enum Columns");
     sb_ret.AppendLine("\t\t{");
     StringBuilder sb_columns = new StringBuilder();
     sb_columns.AppendLine("\t\t\t#region Columns");
     StringBuilder sbPks = new StringBuilder();
     foreach (doPKs.uoPKs p in listPK)
     {
         if (p.name.Trim().IndexOf(" ") > 0) p.name = p.name.Trim().Replace(" ", "_space_");
         if (sbPks.Length > 0) sbPks.Append(", ");
         sbPks.Append("\"").Append(p.name).Append("\"");
     }
     sbPks.Insert(0, "new string[] {");
     sbPks.Append("}");
     foreach (doColumns.uoColumns c in listColumn)
     {
         if (c.column_name.Trim().IndexOf(" ") > 0) c.column_name = c.column_name.Trim().Replace(" ", "_space_");
         bool isPrimaryKey = false;
         foreach (doPKs.uoPKs p in listPK)
         {
             if (c.column_name.Equals(p.name))
             {
                 isPrimaryKey = true;
                 break;
             }
         }
         StringBuilder sbColumnInfo = new StringBuilder();
         if (isPrimaryKey)
         {
             sbColumnInfo.Append("Primary Key,");
         }
         sbColumnInfo.Append("Database Type:").Append(c.data_type);
         if (!string.IsNullOrEmpty(c.max_length))
         {
             sbColumnInfo.Append(",Max Length:").Append(c.max_length);
         }
         sbColumnInfo.Append(",Is Nullable:").Append(c.is_nullable);
         if (!string.IsNullOrEmpty(c.column_default))
         {
             sbColumnInfo.Append(",Default Value:").Append(c.column_default);
         }
         foreach (doRemarks.uoRemarks r in listRemarks)
         {
             if (r.column_name.Equals(c.column_name))
             {
                 sbColumnInfo.Append(",Remark:").Append(r.remark);
                 break;
             }
         }
         sb_ret.AppendLine("\t\t\t/// <summary>");
         sb_ret.Append("\t\t\t///").AppendLine(sbColumnInfo.ToString());
         sb_ret.AppendLine("\t\t\t/// </summary>");
         sb_ret.Append("\t\t\t").Append(c.column_name).AppendLine(",");
         string vtype = CodeScript.GetColumnType(c.data_type);
         sb_columns.AppendLine(string.Format("\t\t\tprivate {0} _{1};", vtype, c.column_name));
         sb_columns.AppendLine("\t\t\t/// <summary>");
         sb_columns.Append("\t\t\t///").AppendLine(sbColumnInfo.ToString());
         sb_columns.AppendLine("\t\t\t/// </summary>");
         sb_columns.Append(string.Format("\t\t\t[Mapping(\"{0}", c.column_name));
         if (isPrimaryKey)
         {
             sb_columns.Append(",un-insert,un-update");
         }
         else if (cf.UnInsertAndUnUpdate.ToLower().IndexOf(c.column_name.ToLower()) >= 0)
         {
             sb_columns.Append(",un-insert,un-update");
         }
         else if (cf.UnInsert.ToLower().IndexOf(c.column_name.ToLower()) >= 0)
         {
             sb_columns.Append(",un-insert");
         }
         else if (cf.UnUpdate.ToLower().IndexOf(c.column_name.ToLower()) >= 0)
         {
             sb_columns.Append(",un-update");
         }
         sb_columns.AppendLine("\")]");
         sb_columns.AppendLine(string.Format("\t\t\tpublic {0} {1}", vtype, c.column_name));
         sb_columns.AppendLine("\t\t\t{");
         sb_columns.AppendLine("\t\t\t\tget");
         sb_columns.AppendLine("\t\t\t\t{");
         sb_columns.AppendLine(string.Format("\t\t\t\t\treturn _{0};", c.column_name));
         sb_columns.AppendLine("\t\t\t\t}");
         sb_columns.AppendLine("\t\t\t\tset");
         sb_columns.AppendLine("\t\t\t\t{");
         sb_columns.AppendLine(string.Format("\t\t\t\t\t_{0} = value;", c.column_name));
         sb_columns.AppendLine("\t\t\t\t}");
         sb_columns.AppendLine("\t\t\t}");
     }
     sb_columns.AppendLine("\t\t\t#endregion");
     sb_ret.AppendLine("\t\t}");
     sb_ret.AppendLine(string.Format("\t\tpublic {1}{0}()", tableName, cf.DOPrefix));
     sb_ret.AppendLine("\t\t{");
     if (listPK.Count > 0)
     {
         sb_ret.AppendLine(string.Format("\t\t\tConnInfo = new ConnectionInformation(\"{0}\", {1},{2});", tableName, cf.ConnectionKey, sbPks.ToString()));
     }
     else
     {
         sb_ret.AppendLine(string.Format("\t\t\tConnInfo = new ConnectionInformation(\"{0}\", {1});", tableName, cf.ConnectionKey));
     }
     sb_ret.AppendLine("\t\t}");
     sb_ret.AppendLine(string.Format("\t\tpublic class {1}{0} : UOBase<{1}{0},{2}{0}>", tableName, cf.UOPrefix, cf.UOListPrefix));
     sb_ret.AppendLine("\t\t{");
     sb_ret.AppendLine(sb_columns.ToString());
     sb_ret.AppendLine(string.Format("\t\t\tpublic {1}{0}()", tableName, cf.UOPrefix));
     sb_ret.AppendLine("\t\t\t{");
     sb_ret.AppendLine(string.Format("\t\t\t\tConnInfo = new {0}{1}().ConnInfo;", cf.DOPrefix, tableName));
     sb_ret.AppendLine("\t\t\t}");
     sb_ret.AppendLine("\t\t}");
     sb_ret.AppendLine(string.Format("\t\tpublic class {1}{0} : CommonLibrary.ObjectBase.ListBase<{2}{0}>", tableName, cf.UOListPrefix, cf.UOPrefix));
     sb_ret.AppendLine("\t\t{");
     sb_ret.AppendLine(string.Format("\t\t\tpublic {1}{0}()", tableName, cf.UOListPrefix));
     sb_ret.AppendLine("\t\t\t{");
     sb_ret.AppendLine("\t\t\t}");
     sb_ret.AppendLine("\t\t}");
     sb_ret.AppendLine("\t}");
     sb_ret.AppendLine("}");
     return sb_ret.ToString();
 }
Exemplo n.º 2
0
 public static string GetDataObject(Settings cf, doTables.uoTables table, doColumns.uoListColumns listColumn, doPKs.uoListPKs listPK, doRemarks.uoListRemarks listRemarks, Dictionary<string, DataMapping.FieldGenerateInfo> fieldsGeneration)
 {
     string tableName = table.name;
     string decorateTableName = Util.ConvertStyle(tableName, cf.DecorateStyle);
     StringBuilder sb_ret = new StringBuilder();
     sb_ret.AppendLine(string.Format(@"
     //------------------------------------------------------------------------------
     // <auto-generated>
     //     Date time = {1}
     //     This code was generated by tool,Version={0}.
     //     Changes to this code may cause incorrect behavior and will be lost if
     //     the code is regenerated.
     // </auto-generated>
     //------------------------------------------------------------------------------", Config.Version, DateTime.Now));
     sb_ret.AppendLine("using System;");
     sb_ret.AppendLine("using System.Collections.Generic;");
     sb_ret.AppendLine("using System.Text;");
     sb_ret.AppendLine("using OracleDataAccess.Data;");
     sb_ret.AppendLine("using DataMapping;");
     sb_ret.AppendLine("");
     sb_ret.Append("namespace ").AppendLine(cf.DataObjectNameSpace);
     sb_ret.AppendLine("{");
     if (!string.IsNullOrEmpty(table.Comments))
     {
         sb_ret.AppendLine("\t/// <summary>");
         sb_ret.AppendLine(string.Concat("\t///", "DO Unit:", table.Comments.Replace("\r\n", " ").Replace("\n", " ")));
         sb_ret.AppendLine("\t/// </summary>");
     }
     sb_ret.AppendLine(string.Format("\tpublic class {1}{0} : DOBase<{1}{0}.{2}{0}, {1}{0}.{3}{0}>", decorateTableName, cf.DOPrefix, cf.UOPrefix, cf.UOListPrefix));
     sb_ret.AppendLine("\t{");
     sb_ret.AppendLine("\t\tpublic enum Columns");
     sb_ret.AppendLine("\t\t{");
     StringBuilder sb_columns = new StringBuilder();
     sb_columns.AppendLine("\t\t\t#region Columns");
     StringBuilder sbPks = new StringBuilder();
     foreach (doPKs.uoPKs p in listPK)
     {
         if (p.name.Trim().IndexOf(" ") > 0) p.name = p.name.Trim().Replace(" ", "_space_");
         if (sbPks.Length > 0) sbPks.Append(", ");
         sbPks.Append("\"").Append(p.name).Append("\"");
     }
     sbPks.Insert(0, "new string[] {");
     sbPks.Append("}");
     foreach (doColumns.uoColumns c in listColumn)
     {
         if (c.column_name.Trim().IndexOf(" ") > 0) c.column_name = c.column_name.Trim().Replace(" ", "_space_");
         string decorateColName = Util.ConvertStyle(c.column_name, cf.DecorateStyle);
         bool isPrimaryKey = false;
         foreach (doPKs.uoPKs p in listPK)
         {
             if (c.column_name.Equals(p.name))
             {
                 isPrimaryKey = true;
                 break;
             }
         }
         StringBuilder sbColumnInfo = new StringBuilder();
         if (isPrimaryKey)
         {
             sbColumnInfo.Append("Primary Key,");
         }
         sbColumnInfo.Append("Database Type:").Append(c.data_type);
         if (!string.IsNullOrEmpty(c.max_length))
         {
             sbColumnInfo.Append(",Max Length:").Append(c.max_length);
         }
         sbColumnInfo.Append(",Is Nullable:").Append(c.is_nullable);
         if (!string.IsNullOrEmpty(c.column_default))
         {
             sbColumnInfo.Append(",Default Value:").Append(c.column_default);
         }
         if (fieldsGeneration != null && fieldsGeneration.ContainsKey(c.column_name))
         {
             sbColumnInfo.Append(",Generate method:").Append(fieldsGeneration[c.column_name].FieldGenerateMethod);
             if (fieldsGeneration[c.column_name].FieldGenerateMethodExtraInfo != null)
             {
                 if (fieldsGeneration[c.column_name].FieldGenerateMethod == DataMapping.FieldGenerateMethod.Native)
                     sbColumnInfo.Append(",Sequence Id:").Append(fieldsGeneration[c.column_name].FieldGenerateMethodExtraInfo);
                 else
                 {
                     sbColumnInfo.Append(",Generate Info:").Append(fieldsGeneration[c.column_name].FieldGenerateMethodExtraInfo);
                 }
             }
         }
         foreach (doRemarks.uoRemarks r in listRemarks)
         {
             if (r.column_name.Equals(c.column_name))
             {
                 sbColumnInfo.Append(",Remark:").Append(r.remark);
                 break;
             }
         }
         sb_ret.AppendLine("\t\t\t/// <summary>");
         sb_ret.Append("\t\t\t///").AppendLine(sbColumnInfo.ToString());
         sb_ret.AppendLine("\t\t\t/// </summary>");
         sb_ret.Append("\t\t\t").Append(decorateColName).AppendLine(",");
         string vtype = CodeScript.GetColumnType(c.data_type);
         sb_columns.AppendLine(string.Format("\t\t\tprivate {0} _{1};", vtype, decorateColName));
         sb_columns.AppendLine("\t\t\t/// <summary>");
         sb_columns.Append("\t\t\t///").AppendLine(sbColumnInfo.ToString());
         sb_columns.AppendLine("\t\t\t/// </summary>");
         sb_columns.Append(string.Format("\t\t\t[Mapping(\"{0}\"", c.column_name));
         const string specailAttr = ",\"{0}\"";
         if (isPrimaryKey)//when Primary Key is Sequence,not insert
         {
             sb_columns.AppendFormat(specailAttr, ",un-update");
         }
         else if (cf.UnInsertAndUnUpdate.ToLower().IndexOf(decorateColName.ToLower()) >= 0)
         {
             sb_columns.AppendFormat(specailAttr, ",un-insert,un-update");
         }
         else if (cf.UnInsert.ToLower().IndexOf(decorateColName.ToLower()) >= 0)
         {
             sb_columns.AppendFormat(specailAttr, ",un-insert");
         }
         else if (cf.UnUpdate.ToLower().IndexOf(decorateColName.ToLower()) >= 0)
         {
             sb_columns.AppendFormat(specailAttr, ",un-update");
         }
         if (fieldsGeneration != null && fieldsGeneration.ContainsKey(decorateColName.ToLower()))
         {
             sb_columns.AppendFormat(", null, DataMapping.FieldGenerateMethod.{0}, \"{1}\"", fieldsGeneration[decorateColName.ToLower()].FieldGenerateMethod, fieldsGeneration[decorateColName.ToLower()].FieldGenerateMethodExtraInfo);
         }
         sb_columns.AppendLine(")]");
         sb_columns.AppendLine(string.Format("\t\t\tpublic {0} {1}", vtype, decorateColName));
         sb_columns.AppendLine("\t\t\t{");
         sb_columns.AppendLine("\t\t\t\tget");
         sb_columns.AppendLine("\t\t\t\t{");
         sb_columns.AppendLine(string.Format("\t\t\t\t\treturn _{0};", decorateColName));
         sb_columns.AppendLine("\t\t\t\t}");
         sb_columns.AppendLine("\t\t\t\tset");
         sb_columns.AppendLine("\t\t\t\t{");
         sb_columns.AppendLine(string.Format("\t\t\t\t\t_{0} = value;", decorateColName));
         sb_columns.AppendLine("\t\t\t\t}");
         sb_columns.AppendLine("\t\t\t}");
     }
     sb_columns.AppendLine("\t\t\t#endregion");
     sb_ret.AppendLine("\t\t}");
     sb_ret.AppendLine(string.Format("\t\tpublic {1}{0}()", decorateTableName, cf.DOPrefix));
     sb_ret.AppendLine("\t\t{");
     if (listPK.Count > 0)
     {
         sb_ret.AppendLine(string.Format("\t\t\tConnInfo = new ConnectionInformation(\"{0}\", {1},{2});", tableName, cf.ConnectionKey, sbPks.ToString()));
     }
     else
     {
         sb_ret.AppendLine(string.Format("\t\t\tConnInfo = new ConnectionInformation(\"{0}\", {1});", tableName, cf.ConnectionKey));
     }
     sb_ret.AppendLine("\t\t}");
     if (!string.IsNullOrEmpty(table.Comments))
     {
         sb_ret.AppendLine("\t\t/// <summary>");
         sb_ret.AppendLine(string.Concat("\t\t///", table.Comments.Replace("\r\n", " ").Replace("\n", " ")));
         sb_ret.AppendLine("\t\t/// </summary>");
     }
     sb_ret.AppendLine(string.Format("\t\tpublic class {1}{0} : UOBase<{1}{0},{2}{0}>", decorateTableName, cf.UOPrefix, cf.UOListPrefix));
     sb_ret.AppendLine("\t\t{");
     sb_ret.AppendLine(sb_columns.ToString());
     sb_ret.AppendLine(string.Format("\t\t\tpublic {1}{0}()", decorateTableName, cf.UOPrefix));
     sb_ret.AppendLine("\t\t\t{");
     sb_ret.AppendLine(string.Format("\t\t\t\tConnInfo = new {0}{1}().ConnInfo;", cf.DOPrefix, decorateTableName));
     sb_ret.AppendLine("\t\t\t}");
     sb_ret.AppendLine("\t\t}");
     sb_ret.AppendLine(string.Format("\t\tpublic class {1}{0} : CommonLibrary.ObjectBase.ListBase<{2}{0}>", decorateTableName, cf.UOListPrefix, cf.UOPrefix));
     sb_ret.AppendLine("\t\t{");
     sb_ret.AppendLine(string.Format("\t\t\tpublic {1}{0}()", decorateTableName, cf.UOListPrefix));
     sb_ret.AppendLine("\t\t\t{");
     sb_ret.AppendLine("\t\t\t}");
     sb_ret.AppendLine("\t\t}");
     sb_ret.AppendLine("\t}");
     sb_ret.AppendLine("}");
     return sb_ret.ToString();
 }