public static string BuildColumnSchema(string type, string name, string default_value, DatabaseColumnConstraints constraints) { StringBuilder builder = new StringBuilder (); builder.Append (name); builder.Append (' '); builder.Append (type); if ((constraints & DatabaseColumnConstraints.NotNull) > 0) { builder.Append (" NOT NULL"); } if ((constraints & DatabaseColumnConstraints.Unique) > 0) { builder.Append (" UNIQUE"); } if ((constraints & DatabaseColumnConstraints.PrimaryKey) > 0) { builder.Append (" PRIMARY KEY"); } if (default_value != null) { builder.Append (" DEFAULT "); builder.Append (default_value); } return builder.ToString (); }
void CheckProperty(Type type, DbColumn column) { if (!Connection.ColumnExists(TableName, column.Name)) { AddColumnToTable(SqliteUtils.BuildColumnSchema( SqliteUtils.GetType(type), column.Name, column.DefaultValue, column.Constraints)); } }