public string TypeDisplay() { var builder = new StringBuilder(TypeName) .Append('['); if (Restrictions.Any()) { builder.Append(Restrictions.First()); foreach (var restriction in Restrictions.Skip(1)) { builder.Append(",").Append(restriction); } } else if (StoredLength > 0) { builder.Append(StoredLength); } else if (Precision > 0 || Scale > 0) { builder.Append(Precision).Append(',').Append(Scale); } else if (!string.IsNullOrEmpty(ForeignLinkPropName)) { builder.Append(ForeignLinkPropName).Append('.').Append(ForeignPropName); } if (IsRequired) { if (builder[builder.Length - 1] != '[') { builder.Append(", "); } builder.Append("not null"); } if (builder[builder.Length - 1] == '[') { builder.Remove(builder.Length - 1, 1); } else { builder.Append(']'); } return(builder.ToString()); }