// SUMMARY: Reconstruct default value private string GetDefaultValue(DMGColumnInfo column) { if (string.IsNullOrEmpty(column.Default)) { if (column.TranslatedType.Contains("?")) { return("null"); } else { return("default"); } } string data = column.Default.Replace("(", string.Empty).Replace(")", string.Empty); if (column.TranslatedType.Equals("string")) { return(string.Format("\"{0}\"", data)); } if (column.TranslatedType.Equals("Guid")) { return("Guid.NewGuid()"); } if (column.TranslatedType.Equals("DateTime") || column.TranslatedType.Equals("DateTime?")) { return("DateTime.Now"); } if (column.TranslatedType.Equals("bool") || column.TranslatedType.Equals("bool?")) { return(data.Equals("1") ? "true" : "false"); } return(data); }
/// PRIVATES /// public virtual List <DMGTableInfo> GetTables() { List <DMGTableInfo> result = new List <DMGTableInfo>(); var data = this.Database.Load <DMGInitialSqlResponse>(this.Query); foreach (var row in data) { if (this.IgnoreTables.Contains <string>(row.table_name)) { continue; } var table = (from r in result where r.TableName.Equals(row.table_name) select r).FirstOrDefault(); if (table == null) { table = new DMGTableInfo() { Schema = row.schema, TableName = row.table_name }; result.Add(table); } var column = new DMGColumnInfo() { Name = row.column_name, Default = row.column_default, Length = row.length, IsPrimary = table.Columns.Count == 0, Type = row.type, IsNullable = row.is_nullable != null && row.is_nullable.Equals("YES") }; column.TranslatedType = this.GetColumnType(column.Type, column.IsNullable); table.Columns.Add(column); } return(result); }
// SUMMARY: Construct DMColumn data private string GetDColumnData(DMGColumnInfo column) { string result = ""; if (column.IsPrimary) { result += ", IsPrimary=true"; } if (!string.IsNullOrEmpty(column.Default)) { result += ", HasDefaultValue=true"; } if (column.IsNullable) { result += ", Nullable=true"; } if (column.TranslatedType.Equals("DateTime")) { if (column.Name.ToLower().Equals("updated")) { result += ", DateTimeUpdate=true, NotUpdatable=true"; } else if (column.Name.ToLower().Equals("created")) { result += ", NotUpdatable=true"; } else if (!string.IsNullOrEmpty(column.Default)) { result += ", NotUpdatable=true"; } } //if (column.TranslatedType.Equals("DateTime") && !string.IsNullOrEmpty(column.Default)) // result += ", DateTimeUpdate=true, NotUpdatable=true"; return(result); }