private static void SetupColumns(Utilities.ORM.Manager.Schema.Default.Database.Table Table, IEnumerable<dynamic> Values) { Contract.Requires<ArgumentNullException>(Values != null, "Values"); foreach (dynamic Item in Values) { if (Table.ContainsColumn(Item.Column)) { Table.AddForeignKey(Item.Column, Item.FOREIGN_KEY_TABLE, Item.FOREIGN_KEY_COLUMN); } else { Table.AddColumn<string>(Item.Column, Utilities.DataTypes.TypeConversionExtensions.To(Utilities.DataTypes.TypeConversionExtensions.To<string, SqlDbType>(Item.COLUMN_TYPE), DbType.Int32), (Item.COLUMN_TYPE == "nvarchar") ? Item.MAX_LENGTH / 2 : Item.MAX_LENGTH, Item.IS_NULLABLE, Item.IS_IDENTITY, Item.IS_INDEX != 0, !string.IsNullOrEmpty(Item.PRIMARY_KEY), !string.IsNullOrEmpty(Item.UNIQUE), Item.FOREIGN_KEY_TABLE, Item.FOREIGN_KEY_COLUMN, Item.DEFAULT_VALUE); } } }