Пример #1
0
        /// <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()));
            }
        }
Пример #2
0
        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);
        }