/// <summary> /// Gets the mysql native foreign index change action type. /// </summary> /// <param name="actionType">the canonical foreign index change action type to translate</param> internal static string GetNativeActionType(this DbForeignKeyActionType actionType) { switch (actionType) { case DbForeignKeyActionType.Restrict: return("RESTRICT"); case DbForeignKeyActionType.Cascade: return("CASCADE"); case DbForeignKeyActionType.SetNull: return("SET NULL"); default: throw new NotImplementedException(string.Format(Properties.Resources.EnumValueNotImplementedException, actionType.ToString())); } }
internal DbFieldSchema(string source, string fieldDelimiter) { if (source.IsNullOrWhiteSpace()) { throw new ArgumentNullException(nameof(source)); } if (null == fieldDelimiter || fieldDelimiter.Length < 1) { throw new ArgumentNullException(nameof(fieldDelimiter)); } _name = source.GetDelimitedField(0, fieldDelimiter); _dataType = source.GetDelimitedField(1, fieldDelimiter).GetEnumOrDefault(DbDataType.Char); _length = source.GetDelimitedField(2, fieldDelimiter).GetInt32OrDefault(255); _notNull = source.GetDelimitedField(3, fieldDelimiter).GetBooleanOrDefault(true); _autoincrement = source.GetDelimitedField(4, fieldDelimiter).GetBooleanOrDefault(false); _unsigned = source.GetDelimitedField(5, fieldDelimiter).GetBooleanOrDefault(true); _enumValues = source.GetDelimitedField(6, fieldDelimiter); _description = source.GetDelimitedField(7, fieldDelimiter); _indexType = source.GetDelimitedField(8, fieldDelimiter).GetEnumOrDefault(DbIndexType.None); _indexName = source.GetDelimitedField(9, fieldDelimiter); _onUpdateForeignKey = source.GetDelimitedField(10, fieldDelimiter).GetEnumOrDefault(DbForeignKeyActionType.Cascade); _onDeleteForeignKey = source.GetDelimitedField(11, fieldDelimiter).GetEnumOrDefault(DbForeignKeyActionType.Restrict); }