예제 #1
0
        /// <summary>
        ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
        ///     directly from your code. This API may change or be removed in future releases.
        /// </summary>
        public virtual void AddDbParameter(DbCommand command, object value)
        {
            Check.NotNull(command, nameof(command));

            if (value == null)
            {
                command.Parameters
                .Add(_typeMapper.GetMappingForValue(null)
                     .CreateParameter(command, Name, null));

                return;
            }

            var dbParameter = value as DbParameter;

            if (dbParameter != null)
            {
                command.Parameters.Add(dbParameter);

                return;
            }

            var type = value.GetType();

            command.Parameters
            .Add(_typeMapper.GetMapping(type)
                 .CreateParameter(command, Name, value, type.IsNullableType()));
        }
예제 #2
0
        protected override void DefaultValue(
            [CanBeNull] object defaultValue,
            [CanBeNull] string defaultValueSql,
            [NotNull] MigrationCommandListBuilder builder)
        {
            ThrowIf.Argument.IsNull(builder, nameof(builder));

            if (defaultValueSql != null)
            {
                builder
                .Append(" DEFAULT ")
                .Append(defaultValueSql);
            }
            else if (defaultValue != null)
            {
                var typeMapping = (MySQLTypeMapping)_typeMapper.GetMappingForValue(defaultValue);
                builder
                .Append(" DEFAULT ")
                .Append(typeMapping.GenerateSqlLiteral(defaultValue));
            }
        }